home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 2
/
AACD 2.iso
/
AACD
/
Magazine
/
GraphicsCards
/
StormMesa
/
src
/
teximage.s
< prev
next >
Wrap
Text File
|
1999-02-04
|
139KB
|
7,627 lines
; Storm C Compiler
; Work2:Mesa3/Mesa-3.0/src/teximage.c
mc68030
mc68881
XREF _gl_read_rgba_span
XREF _gl_free_image
XREF _gl_pack_rgba_span
XREF _gl_unpack_image3D
XREF _gl_pixel_addr_in_image
XREF _gl_components_in_format
XREF _gl_sizeof_type
XREF _gl_error
XREF _gl_problem
XREF _q_memset
XREF _q_memcpy
XREF _malloc
XREF _free
XREF _calloc
XREF _std__in
XREF _std__out
XREF _std__err
XREF _CC
SECTION "_logbase2:0",CODE
;static int logbase2( int n )
_logbase2
movem.l d2/d3,-(a7)
move.l $C(a7),d2
L464
; GLint i = 1;
moveq #1,d1
; GLint log2 = 0;
moveq #0,d0
; if (n<0)
tst.l d2
bpl.b L468
L465
moveq #-1,d0
movem.l (a7)+,d2/d3
rts
L466
; while ( n > i )
bra.b L468
L467
; i *= 2;
moveq #1,d3
asl.l d3,d1
; log2++;
addq.l #1,d0
L468
cmp.l d1,d2
bgt.b L467
L469
; if (i != n)
cmp.l d2,d1
beq.b L471
L470
moveq #-1,d0
movem.l (a7)+,d2/d3
rts
L471
movem.l (a7)+,d2/d3
rts
SECTION "_decode_internal_format:0",CODE
rts
;static GLint decode_internal_format( GLint format )
_decode_internal_format
move.l 4(a7),d0
L472
; switch (format)
cmp.l #$8049,d0
beq L476
bgt L481
cmp.l #$803D,d0
beq L473
bgt L482
cmp.l #$1908,d0
beq L478
bgt.b L483
cmp.l #4,d0
beq L478
bgt.b L484
cmp.l #2,d0
beq L475
bgt.b L485
cmp.l #1,d0
beq L474
bra L480
L485
bgt L477
L484
cmp.l #$1906,d0
beq L473
cmp.l #$1907,d0
beq L477
bra L480
L483
cmp.l #$2A10,d0
beq L477
bgt.b L486
cmp.l #$1909,d0
beq L474
cmp.l #$190A,d0
beq L475
bra L480
L486
cmp.l #$803B,d0
beq L473
cmp.l #$803C,d0
beq L473
bra L480
L482
sub.l #$803E,d0
cmp.l #$A,d0
bhi L480
move.l L487(pc,d0.l*4),a0
jmp (a0)
L487
dc.l L473
dc.l L474
dc.l L474
dc.l L474
dc.l L474
dc.l L475
dc.l L475
dc.l L475
dc.l L475
dc.l L475
dc.l L475
L481
cmp.l #$8056,d0
beq L478
bgt.b L488
sub.l #$804A,d0
cmp.l #$B,d0
bhi L480
move.l L489(pc,d0.l*4),a0
jmp (a0)
L489
dc.l L476
dc.l L476
dc.l L476
dc.l L476
dc.l L480
dc.l L477
dc.l L477
dc.l L477
dc.l L477
dc.l L477
dc.l L477
dc.l L478
L488
cmp.l #$80E2,d0
beq L479
bgt.b L490
cmp.l #$8059,d0
beq L478
bgt.b L491
cmp.l #$8057,d0
beq L478
cmp.l #$8058,d0
beq.b L478
bra L480
L491
cmp.l #$805A,d0
beq.b L478
cmp.l #$805B,d0
beq.b L478
bra.b L480
L490
cmp.l #$80E5,d0
beq.b L479
bgt.b L492
cmp.l #$80E3,d0
beq.b L479
cmp.l #$80E4,d0
beq.b L479
bra.b L480
L492
cmp.l #$80E6,d0
beq.b L479
cmp.l #$80E7,d0
beq.b L479
bra.b L480
;
L473
move.l #$1906,d0
rts
L474
move.l #$1909,d0
rts
L475
move.l #$190A,d0
rts
L476
move.l #$8049,d0
rts
L477
move.l #$1907,d0
rts
L478
move.l #$1908,d0
rts
L479
move.l #$1900,d0
rts
L480
moveq #-1,d0
rts
SECTION "_components_in_intformat:0",CODE
;static GLint components_in_intformat( GLint format )
_components_in_intformat
move.l 4(a7),d0
L493
; switch (format)
cmp.l #$8048,d0
beq L496
bgt L502
cmp.l #$803C,d0
beq L494
bgt L503
cmp.l #$1907,d0
beq L498
bgt.b L504
cmp.l #4,d0
beq L499
bgt.b L505
cmp.l #2,d0
beq L496
bgt.b L506
cmp.l #1,d0
beq L495
bra L501
L506
bgt L498
L505
cmp.l #$1900,d0
beq L500
cmp.l #$1906,d0
beq L494
bra L501
L504
cmp.l #$190A,d0
beq L496
bgt.b L507
cmp.l #$1908,d0
beq L499
cmp.l #$1909,d0
beq L495
bra L501
L507
cmp.l #$2A10,d0
beq L498
cmp.l #$803B,d0
beq L494
bra L501
L503
sub.l #$803D,d0
cmp.l #$A,d0
bhi L501
move.l L508(pc,d0.l*4),a0
jmp (a0)
L508
dc.l L494
dc.l L494
dc.l L495
dc.l L495
dc.l L495
dc.l L495
dc.l L496
dc.l L496
dc.l L496
dc.l L496
dc.l L496
L502
cmp.l #$8056,d0
beq L499
bgt.b L509
sub.l #$8049,d0
cmp.l #$C,d0
bhi L501
move.l L510(pc,d0.l*4),a0
jmp (a0)
L510
dc.l L497
dc.l L497
dc.l L497
dc.l L497
dc.l L497
dc.l L501
dc.l L498
dc.l L498
dc.l L498
dc.l L498
dc.l L498
dc.l L498
dc.l L499
L509
cmp.l #$80E2,d0
beq L500
bgt.b L511
cmp.l #$8059,d0
beq.b L499
bgt.b L512
cmp.l #$8057,d0
beq.b L499
cmp.l #$8058,d0
beq.b L499
bra.b L501
L512
cmp.l #$805A,d0
beq.b L499
cmp.l #$805B,d0
beq.b L499
bra.b L501
L511
cmp.l #$80E5,d0
beq.b L500
bgt.b L513
cmp.l #$80E3,d0
beq.b L500
cmp.l #$80E4,d0
beq.b L500
bra.b L501
L513
cmp.l #$80E6,d0
beq.b L500
cmp.l #$80E7,d0
beq.b L500
bra.b L501
;
L494
moveq #1,d0
rts
L495
moveq #1,d0
rts
L496
moveq #2,d0
rts
L497
moveq #1,d0
rts
L498
moveq #3,d0
rts
L499
moveq #4,d0
rts
L500
moveq #1,d0
rts
L501
moveq #-1,d0
rts
SECTION "_gl_alloc_texture_image:0",CODE
;struct gl_texture_image *gl_alloc_texture_image( void )
XDEF _gl_alloc_texture_image
_gl_alloc_texture_image
L514
pea $3C.w
pea 1.w
jsr _calloc
addq.w #$8,a7
rts
SECTION "_gl_free_texture_image:0",CODE
;void gl_free_texture_image( struct gl_texture_image *teximage )
XDEF _gl_free_texture_image
_gl_free_texture_image
move.l a2,-(a7)
move.l $8(a7),a2
L515
; if (teximage->Data)
tst.l $34(a2)
beq.b L517
L516
; free( teximage->Data );
move.l $34(a2),-(a7)
jsr _free
addq.w #4,a7
L517
; free( teximage );
move.l a2,-(a7)
jsr _free
addq.w #4,a7
move.l (a7)+,a2
rts
SECTION "_image_to_texture:0",CODE
;static struct gl_texture_image *
_image_to_texture
L692 EQU -$190
link a5,#L692
movem.l d2-d7/a2-a4,-(a7)
fmovem.x fp2/fp3/fp4,-(a7)
move.l $14(a5),d2
move.l $8(a5),a4
L524
; components = components_in_intformat(internalFormat);
move.l $10(a5),-(a7)
jsr _components_in_intformat
addq.w #4,a7
move.l d0,d7
; numPixels = image->Width * image->Height * image->Depth;
move.l $C(a5),a0
move.l (a0),-$C(a5)
move.l $C(a5),a0
move.l -$C(a5),d0
muls.l 4(a0),d0
move.l d0,-$C(a5)
move.l $C(a5),a0
move.l -$C(a5),d0
muls.l $8(a0),d0
move.l d0,-$C(a5)
; texImage = gl_alloc_texture_image();
jsr _gl_alloc_texture_image
move.l d0,a2
; if (!texImage)
cmp.w #0,a2
bne.b L526
L525
moveq #0,d0
fmovem.x (a7)+,fp2/fp3/fp4
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L526
; texImage->Format = (GLenum) decode_internal_format(internalFor
move.l $10(a5),-(a7)
jsr _decode_internal_format
addq.w #4,a7
move.l d0,(a2)
; texImage->IntFormat = (GLenum) internalFormat;
move.l $10(a5),4(a2)
; texImage->Border = border;
move.l d2,$8(a2)
; texImage->Width = image->Width;
move.l $C(a5),a0
move.l (a0),$C(a2)
; texImage->Height = image->Height;
move.l $C(a5),a0
move.l 4(a0),$10(a2)
; texImage->Depth = image->Depth;
move.l $C(a5),a0
move.l $8(a0),$14(a2)
; texImage->WidthLog2 = logbase2(image->Width - 2*border);
move.l $C(a5),a0
move.l d2,d1
moveq #1,d6
asl.l d6,d1
move.l (a0),d0
sub.l d1,d0
move.l d0,-(a7)
jsr _logbase2
addq.w #4,a7
move.l d0,$24(a2)
; if (image->Height==1) /* 1-D texture */
move.l $C(a5),a0
move.l 4(a0),d0
cmp.l #1,d0
bne.b L528
L527
; texImage->HeightLog2 = 0;
clr.l $28(a2)
bra.b L529
L528
; texImage->HeightLog2 = logbase2(image->Height - 2*border)
move.l $C(a5),a0
move.l d2,d1
moveq #1,d6
asl.l d6,d1
move.l 4(a0),d0
sub.l d1,d0
move.l d0,-(a7)
jsr _logbase2
addq.w #4,a7
move.l d0,$28(a2)
L529
; if (image->Depth==1) /* 2-D texture */
move.l $C(a5),a0
move.l $8(a0),d0
cmp.l #1,d0
bne.b L531
L530
; texImage->DepthLog2 = 0;
clr.l $2C(a2)
bra.b L532
L531
; texImage->DepthLog2 = logbase2(image->Depth - 2*border);
move.l $C(a5),a0
move.l d2,d1
moveq #1,d2
asl.l d2,d1
move.l $8(a0),d0
sub.l d1,d0
move.l d0,-(a7)
jsr _logbase2
addq.w #4,a7
move.l d0,$2C(a2)
L532
; texImage->Width2 = 1 << texImage->WidthLog2;
moveq #1,d0
move.l $24(a2),d1
asl.l d1,d0
move.l d0,$18(a2)
; texImage->Height2 = 1 << texImage->HeightLog2;
moveq #1,d0
move.l $28(a2),d1
asl.l d1,d0
move.l d0,$1C(a2)
; texImage->Depth2 = 1 << texImage->DepthLog2;
moveq #1,d0
move.l $2C(a2),d1
asl.l d1,d0
move.l d0,$20(a2)
; texImage->MaxLog2 = MAX2( texImage->WidthLog2, texImage->Heigh
move.l $24(a2),d1
cmp.l $28(a2),d1
bls.b L534
L533
move.l $24(a2),d0
bra.b L535
L534
move.l $28(a2),d0
L535
move.l d0,$30(a2)
; texImage->Data = (GLubyte *) malloc( numPixels * components );
move.l -$C(a5),d0
muls.l d7,d0
move.l d0,-(a7)
jsr _malloc
addq.w #4,a7
move.l d0,$34(a2)
; if (!texImage->Data)
tst.l $34(a2)
bne.b L537
L536
; gl_free_texture_image( texImage );
move.l a2,-(a7)
jsr _gl_free_texture_image
addq.w #4,a7
moveq #0,d0
fmovem.x (a7)+,fp2/fp3/fp4
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L537
; if (ctx->Pixel.RedScale!=1.0F || ctx->Pixel.RedBias!=0.0F ||
move.l a4,a0
add.l #$B168,a0
fmove.s $8(a0),fp0
fcmp.s #$.3F800000,fp0
fbne.b L545
L538
move.l a4,a0
add.l #$B168,a0
fmove.s 4(a0),fp0
fcmp.s #$.00000000,fp0
fbne.b L545
L539
move.l a4,a0
add.l #$B168,a0
fmove.s $10(a0),fp0
fcmp.s #$.3F800000,fp0
fbne.b L545
L540
move.l a4,a0
add.l #$B168,a0
fmove.s $C(a0),fp0
fcmp.s #$.00000000,fp0
fbne.b L545
L541
move.l a4,a0
add.l #$B168,a0
fmove.s $18(a0),fp0
fcmp.s #$.3F800000,fp0
fbne.b L545
L542
move.l a4,a0
add.l #$B168,a0
fmove.s $14(a0),fp0
fcmp.s #$.00000000,fp0
fbne.b L545
L543
move.l a4,a0
add.l #$B168,a0
fmove.s $20(a0),fp0
fcmp.s #$.3F800000,fp0
fbne.b L545
L544
move.l a4,a0
add.l #$B168,a0
ftst.s $1C(a0)
fbeq.b L546
L545
; scaleOrBias = GL_TRUE;
moveq #1,d7
bra.b L547
L546
; scaleOrBias = GL_FALSE;
moveq #0,d7
L547
; switch (image->Type)
move.l $C(a5),a0
move.l $14(a0),d0
cmp.l #$1406,d0
beq L631
bgt.b L693
cmp.l #$1401,d0
beq L573
bra L690
L693
cmp.l #$1A00,d0
beq.b L548
bra L690
;
L548
; GLint shift = ctx->Pixel.IndexShift;
move.l a4,a0
add.l #$B168,a0
move.l $2E(a0),d5
; GLint offset = ctx->Pixel.IndexOffset;
move.l a4,a0
add.l #$B168,a0
move.l $32(a0),-$1A(a5)
; GLint rMask = ctx->Pixel.MapItoRsize-1;
move.l a4,a0
add.l #$B168,a0
move.l $48(a0),-$1E(a5)
subq.l #1,-$1E(a5)
; GLint gMask = ctx->Pixel.MapItoGsize-1;
move.l a4,a0
add.l #$B168,a0
move.l $4C(a0),-$22(a5)
subq.l #1,-$22(a5)
; GLint bMask = ctx->Pixel.MapItoBsize-1;
move.l a4,a0
add.l #$B168,a0
move.l $50(a0),-$26(a5)
subq.l #1,-$26(a5)
; GLint aMask = ctx->Pixel.MapItoAsize-1;
move.l a4,a0
add.l #$B168,a0
move.l $54(a0),-$2A(a5)
subq.l #1,-$2A(a5)
; GLubyte *srcPtr = (GLubyte *) image->Data;
move.l $C(a5),a1
move.l $18(a1),a0
; for (j=0;
clr.l -$32(a5)
bra L571
L549
; GLubyte bitMask = 128;
move.b #$80,d3
; for (i=0;
moveq #0,d4
bra L567
L550
; index = (*srcPtr & bitMask) ? 1
moveq #0,d0
move.b (a0),d0
moveq #0,d1
move.b d3,d1
and.l d1,d0
beq.b L552
L551
moveq #1,d0
bra.b L553
L552
moveq #0,d0
L553
; bitMask = bitMask >> 1;
moveq #0,d1
move.b d3,d1
moveq #1,d2
asr.l d2,d1
move.b d1,d3
; if (bitMask==0)
bne.b L555
L554
; bitMask = 128;
move.b #$80,d3
; srcPtr++;
addq.w #1,a0
L555
; if (shift>=0)
tst.l d5
bmi.b L557
L556
; index = (index << shift) +
asl.l d5,d0
add.l -$1A(a5),d0
bra.b L558
L557
; index = (index >> -shift)
move.l d5,d1
neg.l d1
asr.l d1,d0
add.l -$1A(a5),d0
L558
; red = (GLint) (ctx->Pixel.MapI
move.l a4,a1
add.l #$B9D0,a1
move.l d0,d1
and.l -$1E(a5),d1
fmove.s 0(a1,d1.l*4),fp0
fmul.s #$.437F0000,fp0
fmove.l fp0,d1
; green = (GLint) (ctx->Pixel.MapI
move.l a4,a1
add.l #$BDD0,a1
move.l d0,d2
and.l -$22(a5),d2
fmove.s 0(a1,d2.l*4),fp0
fmul.s #$.437F0000,fp0
fmove.l fp0,d2
move.b d2,-$3E(a5)
; blue = (GLint) (ctx->Pixel.MapI
move.l a4,a1
add.l #$C1D0,a1
move.l d0,d2
and.l -$26(a5),d2
fmove.s 0(a1,d2.l*4),fp0
fmul.s #$.437F0000,fp0
fmove.l fp0,d2
move.b d2,-$3F(a5)
; alpha = (GLint) (ctx->Pixel.MapI
move.l a4,a1
add.l #$C5D0,a1
and.l -$2A(a5),d0
fmove.s 0(a1,d0.l*4),fp0
fmul.s #$.437F0000,fp0
fmove.l fp0,d0
; pixel = j * image->Width + i;
move.l $C(a5),a1
move.l (a1),d2
muls.l -$32(a5),d2
add.l d4,d2
; switch (texImage->Format)
move.l (a2),d6
cmp.l #$1909,d6
beq.b L560
bgt.b L694
cmp.l #$1907,d6
beq.b L563
bgt.b L695
cmp.l #$1906,d6
beq.b L559
bra L565
L695
bgt L564
L694
cmp.l #$190A,d6
beq.b L561
cmp.l #$8049,d6
beq.b L562
bra L565
;
L559
; texImage->Data[pixel
move.l $34(a2),a1
move.b d0,0(a1,d2.l)
;
bra L566
L560
; texImage->Data[pixel
move.l $34(a2),a1
move.b d1,0(a1,d2.l)
;
bra L566
L561
; texImage->Data[pixel
move.l d2,d6
moveq #1,d7
asl.l d7,d6
move.l $34(a2),a1
move.b d1,0(a1,d6.l)
; texImage->Data[pixel
move.l $34(a2),a1
moveq #1,d1
asl.l d1,d2
lea 1(a1),a1
move.b d0,0(a1,d2.l)
;
bra L566
L562
; texImage->Data[pixel
move.l $34(a2),a1
move.b d1,0(a1,d2.l)
;
bra L566
L563
; texImage->Data[pixel
move.l d2,d0
muls.l #3,d0
move.l $34(a2),a1
move.b d1,0(a1,d0.l)
; texImage->Data[pixel
move.l $34(a2),a1
move.l d2,d0
muls.l #3,d0
lea 1(a1),a1
move.b -$3E(a5),0(a1,d0.l)
; texImage->Data[pixel
move.l $34(a2),a1
muls.l #3,d2
lea 2(a1),a1
move.b -$3F(a5),0(a1,d2.l)
;
bra.b L566
L564
; texImage->Data[pixel
move.l d2,d6
moveq #2,d7
asl.l d7,d6
move.l $34(a2),a1
move.b d1,0(a1,d6.l)
; texImage->Data[pixel
move.l $34(a2),a1
move.l d2,d1
moveq #2,d6
asl.l d6,d1
lea 1(a1),a1
move.b -$3E(a5),0(a1,d1.l)
; texImage->Data[pixel
move.l $34(a2),a1
move.l d2,d1
moveq #2,d6
asl.l d6,d1
lea 2(a1),a1
move.b -$3F(a5),0(a1,d1.l)
; texImage->Data[pixel
move.l $34(a2),a1
moveq #2,d1
asl.l d1,d2
lea 3(a1),a1
move.b d0,0(a1,d2.l)
;
bra.b L566
L565
; gl_problem(ctx,"Bad
move.l #L518,-(a7)
move.l a4,-(a7)
jsr _gl_problem
addq.w #$8,a7
moveq #0,d0
fmovem.x (a7)+,fp2/fp3/fp4
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L566
addq.l #1,d4
L567
move.l $C(a5),a1
cmp.l (a1),d4
blt L550
L568
; return
; if (bitMask!=128)
cmp.b #$80,d3
beq.b L570
L569
; srcPtr++;
addq.w #1,a0
L570
addq.l #1,-$32(a5)
L571
move.l $C(a5),a1
move.l -$32(a5),d1
cmp.l 4(a1),d1
blt L549
L572
;
bra L691
L573
; for (pixel=0;
moveq #0,d2
bra L629
L574
; switch (image->Format)
move.l $C(a5),a0
move.l $10(a0),d0
sub.l #$1900,d0
cmp.l #$A,d0
bhi L587
move.l L696(pc,d0.l*4),a0
jmp (a0)
L696
dc.l L575
dc.l L587
dc.l L587
dc.l L581
dc.l L582
dc.l L583
dc.l L584
dc.l L579
dc.l L580
dc.l L585
dc.l L586
;
L575
; if (decode_internal_format(inter
move.l $10(a5),-(a7)
jsr _decode_internal_format
addq.w #4,a7
cmp.l #$1900,d0
bne.b L577
L576
; GLint index = ((GLubyte*)i
move.l $C(a5),a1
move.l $18(a1),a0
moveq #0,d0
move.b 0(a0,d2.l),d0
; red = index;
bra L578
L577
; GLint index = ((GLubyte*)i
move.l $C(a5),a1
move.l $18(a1),a0
moveq #0,d1
move.b 0(a0,d2.l),d1
; red = (GLint) (255.0F *
move.l a4,a0
add.l #$B9D0,a0
fmove.s 0(a0,d1.l*4),fp0
fmul.s #$.437F0000,fp0
fmove.l fp0,d0
; green = (GLint) (255.0F *
move.l a4,a0
add.l #$BDD0,a0
fmove.s 0(a0,d1.l*4),fp0
fmul.s #$.437F0000,fp0
fmove.l fp0,d3
move.b d3,d5
; blue = (GLint) (255.0F *
move.l a4,a0
add.l #$C1D0,a0
fmove.s 0(a0,d1.l*4),fp0
fmul.s #$.437F0000,fp0
fmove.l fp0,d3
move.b d3,d4
; alpha = (GLint) (255.0F *
move.l a4,a0
add.l #$C5D0,a0
fmove.s 0(a0,d1.l*4),fp0
fmul.s #$.437F0000,fp0
fmove.l fp0,d1
move.b d1,d3
L578
;
bra L588
L579
; red = ((GLubyte*) image->Data)
move.l $C(a5),a1
move.l d2,d0
muls.l #3,d0
move.l $18(a1),a0
move.b 0(a0,d0.l),d0
; green = ((GLubyte*) image->Data)
move.l $C(a5),a1
move.l $18(a1),a0
move.l d2,d1
muls.l #3,d1
lea 1(a0),a0
move.b 0(a0,d1.l),d5
; blue = ((GLubyte*) image->Data)
move.l $C(a5),a1
move.l $18(a1),a0
move.l d2,d1
muls.l #3,d1
lea 2(a0),a0
move.b 0(a0,d1.l),d4
; alpha = 255;
move.b #$FF,d3
;
bra L588
L580
; red = ((GLubyte*) image->Data)
move.l $C(a5),a1
move.l d2,d0
moveq #2,d1
asl.l d1,d0
move.l $18(a1),a0
move.b 0(a0,d0.l),d0
; green = ((GLubyte*) image->Data)
move.l $C(a5),a1
move.l $18(a1),a0
move.l d2,d1
moveq #2,d3
asl.l d3,d1
lea 1(a0),a0
move.b 0(a0,d1.l),d5
; blue = ((GLubyte*) image->Data)
move.l $C(a5),a1
move.l $18(a1),a0
move.l d2,d1
moveq #2,d3
asl.l d3,d1
lea 2(a0),a0
move.b 0(a0,d1.l),d4
; alpha = ((GLubyte*) image->Data)
move.l $C(a5),a1
move.l $18(a1),a0
move.l d2,d1
moveq #2,d3
asl.l d3,d1
lea 3(a0),a0
move.b 0(a0,d1.l),d3
;
bra L588
L581
; red = ((GLubyte*) image->Data)
move.l $C(a5),a1
move.l $18(a1),a0
move.b 0(a0,d2.l),d0
; green = 0;
moveq #0,d5
; blue = 0;
moveq #0,d4
; alpha = 255;
move.b #$FF,d3
;
bra L588
L582
; red = 0;
moveq #0,d0
; green = ((GLubyte*) image->Data)
move.l $C(a5),a1
move.l $18(a1),a0
move.b 0(a0,d2.l),d5
; blue = 0;
moveq #0,d4
; alpha = 255;
move.b #$FF,d3
;
bra L588
L583
; red = 0;
moveq #0,d0
; green = 0;
moveq #0,d5
; blue = ((GLubyte*) image->Data)
move.l $C(a5),a1
move.l $18(a1),a0
move.b 0(a0,d2.l),d4
; alpha = 255;
move.b #$FF,d3
;
bra L588
L584
; red = 0;
moveq #0,d0
; green = 0;
moveq #0,d5
; blue = 0;
moveq #0,d4
; alpha = ((GLubyte*) image->Data)
move.l $C(a5),a1
move.l $18(a1),a0
move.b 0(a0,d2.l),d3
;
bra.b L588
L585
; red = ((GLubyte*) image->Data)
move.l $C(a5),a1
move.l $18(a1),a0
move.b 0(a0,d2.l),d0
; green = red;
move.b d0,d5
; blue = red;
move.b d0,d4
; alpha = 255;
move.b #$FF,d3
;
bra.b L588
L586
; red = ((GLubyte*) image->Data)
move.l $C(a5),a1
move.l d2,d0
moveq #1,d1
asl.l d1,d0
move.l $18(a1),a0
move.b 0(a0,d0.l),d0
; green = red;
move.b d0,d5
; blue = red;
move.b d0,d4
; alpha = ((GLubyte*) image->Data)
move.l $C(a5),a1
move.l $18(a1),a0
move.l d2,d1
moveq #1,d3
asl.l d3,d1
lea 1(a0),a0
move.b 0(a0,d1.l),d3
;
bra.b L588
L587
; gl_problem(ctx,"Bad format (2) in
move.l #L519,-(a7)
move.l a4,-(a7)
jsr _gl_problem
addq.w #$8,a7
moveq #0,d0
fmovem.x (a7)+,fp2/fp3/fp4
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L588
; return
; if (scaleOrBias || ctx->Pixel.MapColorFlag)
tst.b d7
bne.b L590
L589
move.l a4,a0
add.l #$B168,a0
tst.b $36(a0)
beq L619
L590
; GLfloat r = red * (1.0F/255.0F);
and.l #$FF,d0
fmove.l d0,fp3
fmul.s #$.3B808080,fp3
; GLfloat g = green * (1.0F/255.0F);
moveq #0,d0
move.b d5,d0
fmove.l d0,fp2
fmul.s #$.3B808080,fp2
; GLfloat b = blue * (1.0F/255.0F);
moveq #0,d0
move.b d4,d0
fmove.l d0,fp1
fmul.s #$.3B808080,fp1
; GLfloat a = alpha * (1.0F/255.0F);
moveq #0,d0
move.b d3,d0
fmove.l d0,fp0
fmul.s #$.3B808080,fp0
; if (scaleOrBias)
tst.b d7
beq L616
L591
; r = r * ctx->Pixel.RedScale +
move.l a4,a0
add.l #$B168,a0
fmul.s $8(a0),fp3
move.l a4,a0
add.l #$B168,a0
fadd.s 4(a0),fp3
; g = g * ctx->Pixel.GreenScale +
move.l a4,a0
add.l #$B168,a0
fmul.s $10(a0),fp2
move.l a4,a0
add.l #$B168,a0
fadd.s $C(a0),fp2
; b = b * ctx->Pixel.BlueScale +
move.l a4,a0
add.l #$B168,a0
fmul.s $18(a0),fp1
move.l a4,a0
add.l #$B168,a0
fadd.s $14(a0),fp1
; a = a * ctx->Pixel.AlphaScale +
move.l a4,a0
add.l #$B168,a0
fmul.s $20(a0),fp0
move.l a4,a0
add.l #$B168,a0
fadd.s $1C(a0),fp0
; r = CLAMP( r, 0.0F, 1.0F );
fcmp.s #$.00000000,fp3
fboge.b L593
L592
fmove.s #$.00000000,fp3
bra.b L597
L593
fcmp.s #$.3F800000,fp3
fbole.b L595
L594
fmove.s #$.3F800000,fp3
L595
L596
L597
; g = CLAMP( g, 0.0F, 1.0F );
fcmp.s #$.00000000,fp2
fboge.b L599
L598
fmove.s #$.00000000,fp2
bra.b L603
L599
fcmp.s #$.3F800000,fp2
fbole.b L601
L600
fmove.s #$.3F800000,fp2
L601
L602
L603
; b = CLAMP( b, 0.0F, 1.0F );
fcmp.s #$.00000000,fp1
fboge.b L605
L604
fmove.s #$.00000000,fp1
bra.b L609
L605
fcmp.s #$.3F800000,fp1
fbole.b L607
L606
fmove.s #$.3F800000,fp1
L607
L608
L609
; a = CLAMP( a, 0.0F, 1.0F );
fcmp.s #$.00000000,fp0
fboge.b L611
L610
fmove.s #$.00000000,fp0
bra.b L615
L611
fcmp.s #$.3F800000,fp0
fbole.b L613
L612
fmove.s #$.3F800000,fp0
L613
L614
L615
L616
; if (ctx->Pixel.MapColorFlag)
move.l a4,a0
add.l #$B168,a0
tst.b $36(a0)
beq L618
L617
; GLint ir = (GLint) (r*ctx->Pixel
move.l a4,a0
add.l #$B168,a0
fmove.l $58(a0),fp4
fmul.x fp4,fp3
fmove.l fp3,d4
; GLint ig = (GLint) (g*ctx->Pixel
move.l a4,a0
add.l #$B168,a0
fmove.l $5C(a0),fp3
fmul.x fp3,fp2
fmove.l fp2,d3
; GLint ib = (GLint) (b*ctx->Pixel
move.l a4,a0
add.l #$B168,a0
fmove.l $60(a0),fp2
fmul.x fp2,fp1
fmove.l fp1,d1
; GLint ia = (GLint) (a*ctx->Pixel
move.l a4,a0
add.l #$B168,a0
fmove.l $64(a0),fp1
fmul.x fp1,fp0
fmove.l fp0,d0
; r = ctx->Pixel.MapRtoR[ir];
move.l a4,a0
add.l #$CDD0,a0
fmove.s 0(a0,d4.l*4),fp3
; g = ctx->Pixel.MapGtoG[ig];
move.l a4,a0
add.l #$D1D0,a0
fmove.s 0(a0,d3.l*4),fp2
; b = ctx->Pixel.MapBtoB[ib];
move.l a4,a0
add.l #$D5D0,a0
fmove.s 0(a0,d1.l*4),fp1
; a = ctx->Pixel.MapAtoA[ia];
move.l a4,a0
add.l #$D9D0,a0
fmove.s 0(a0,d0.l*4),fp0
L618
; red = (GLint) (r * 255.0F);
fmul.s #$.437F0000,fp3
fmove.l fp3,d0
; green = (GLint) (g * 255.0F);
fmul.s #$.437F0000,fp2
fmove.l fp2,d1
move.b d1,d5
; blue = (GLint) (b * 255.0F);
fmul.s #$.437F0000,fp1
fmove.l fp1,d1
move.b d1,d4
; alpha = (GLint) (a * 255.0F);
fmul.s #$.437F0000,fp0
fmove.l fp0,d1
move.b d1,d3
L619
; switch (texImage->Format)
move.l (a2),d1
cmp.l #$1908,d1
beq L626
bgt.b L697
cmp.l #$1906,d1
beq.b L621
bgt.b L698
cmp.l #$1900,d1
beq.b L620
bra L627
L698
bgt.b L625
L697
cmp.l #$190A,d1
beq.b L623
bgt.b L699
blt.b L622
L699
cmp.l #$8049,d1
beq.b L624
bra L627
;
L620
; texImage->Data[pixel] = red;
move.l $34(a2),a0
move.b d0,0(a0,d2.l)
;
bra L628
L621
; texImage->Data[pixel] = alpha;
move.l $34(a2),a0
move.b d3,0(a0,d2.l)
;
bra L628
L622
; texImage->Data[pixel] = red;
move.l $34(a2),a0
move.b d0,0(a0,d2.l)
;
bra L628
L623
; texImage->Data[pixel*2+0] = red;
move.l d2,d1
moveq #1,d6
asl.l d6,d1
move.l $34(a2),a0
move.b d0,0(a0,d1.l)
; texImage->Data[pixel*2+1] = alph
move.l $34(a2),a0
move.l d2,d0
moveq #1,d1
asl.l d1,d0
lea 1(a0),a0
move.b d3,0(a0,d0.l)
;
bra L628
L624
; texImage->Data[pixel] = red;
move.l $34(a2),a0
move.b d0,0(a0,d2.l)
;
bra L628
L625
; texImage->Data[pixel*3+0] = red;
move.l d2,d1
muls.l #3,d1
move.l $34(a2),a0
move.b d0,0(a0,d1.l)
; texImage->Data[pixel*3+1] = gree
move.l $34(a2),a0
move.l d2,d0
muls.l #3,d0
lea 1(a0),a0
move.b d5,0(a0,d0.l)
; texImage->Data[pixel*3+2] = blue;
move.l $34(a2),a0
move.l d2,d0
muls.l #3,d0
lea 2(a0),a0
move.b d4,0(a0,d0.l)
;
bra.b L628
L626
; texImage->Data[pixel*4+0] = red;
move.l d2,d1
moveq #2,d6
asl.l d6,d1
move.l $34(a2),a0
move.b d0,0(a0,d1.l)
; texImage->Data[pixel*4+1] = gree
move.l $34(a2),a0
move.l d2,d0
moveq #2,d1
asl.l d1,d0
lea 1(a0),a0
move.b d5,0(a0,d0.l)
; texImage->Data[pixel*4+2] = blue;
move.l $34(a2),a0
move.l d2,d0
moveq #2,d1
asl.l d1,d0
lea 2(a0),a0
move.b d4,0(a0,d0.l)
; texImage->Data[pixel*4+3] = alph
move.l $34(a2),a0
move.l d2,d0
moveq #2,d1
asl.l d1,d0
lea 3(a0),a0
move.b d3,0(a0,d0.l)
;
bra.b L628
L627
; gl_problem(ctx,"Bad format (3) i
move.l #L520,-(a7)
move.l a4,-(a7)
jsr _gl_problem
addq.w #$8,a7
moveq #0,d0
fmovem.x (a7)+,fp2/fp3/fp4
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L628
addq.l #1,d2
L629
cmp.l -$C(a5),d2
blt L574
L630
; return
;
bra L691
L631
; for (pixel=0;
moveq #0,d2
bra L688
L632
; switch (texImage->Format)
move.l (a2),d0
sub.l #$1900,d0
cmp.l #$A,d0
bhi L648
move.l L700(pc,d0.l*4),a0
jmp (a0)
L700
dc.l L633
dc.l L648
dc.l L648
dc.l L642
dc.l L643
dc.l L644
dc.l L645
dc.l L640
dc.l L641
dc.l L646
dc.l L647
;
L633
; if (decode_internal_format(inter
move.l $10(a5),-(a7)
jsr _decode_internal_format
addq.w #4,a7
cmp.l #$1900,d0
bne.b L635
L634
; GLint index = (GLint) ((GL
move.l $C(a5),a1
move.l $18(a1),a0
fmove.s 0(a0,d2.l*4),fp0
fmove.l fp0,d0
; red = index;
fmove.l d0,fp0
bra L639
L635
; GLint shift = ctx->Pixel.I
move.l a4,a0
add.l #$B168,a0
move.l $2E(a0),d1
; GLint offset = ctx->Pixel.
move.l a4,a0
add.l #$B168,a0
move.l $32(a0),-$68(a5)
; GLint rMask = ctx->Pixel.M
move.l a4,a0
add.l #$B168,a0
move.l $48(a0),d0
subq.l #1,d0
move.l d0,d6
; GLint gMask = ctx->Pixel.M
move.l a4,a0
add.l #$B168,a0
move.l $4C(a0),d5
subq.l #1,d5
; GLint bMask = ctx->Pixel.M
move.l a4,a0
add.l #$B168,a0
move.l $50(a0),d4
subq.l #1,d4
; GLint aMask = ctx->Pixel.M
move.l a4,a0
add.l #$B168,a0
move.l $54(a0),d3
subq.l #1,d3
; GLint index = (GLint) ((GL
move.l $C(a5),a1
move.l $18(a1),a0
fmove.s 0(a0,d2.l*4),fp0
fmove.l fp0,d0
; if (shift>=0)
tst.l d1
bmi.b L637
L636
; index = (index << sh
asl.l d1,d0
add.l -$68(a5),d0
bra.b L638
L637
; index = (index >> -s
neg.l d1
asr.l d1,d0
add.l -$68(a5),d0
L638
; red = ctx->Pixel.MapItoR
move.l a4,a0
add.l #$B9D0,a0
move.l d0,d1
and.l d6,d1
fmove.s 0(a0,d1.l*4),fp0
; green = ctx->Pixel.MapItoG
move.l a4,a0
add.l #$BDD0,a0
move.l d0,d1
and.l d5,d1
fmove.s 0(a0,d1.l*4),fp4
; blue = ctx->Pixel.MapItoB
move.l a4,a0
add.l #$C1D0,a0
move.l d0,d1
and.l d4,d1
fmove.s 0(a0,d1.l*4),fp3
; alpha = ctx->Pixel.MapItoA
move.l a4,a0
add.l #$C5D0,a0
and.l d3,d0
fmove.s 0(a0,d0.l*4),fp2
L639
;
bra L649
L640
; red = ((GLfloat*) image->Data)
move.l $C(a5),a1
move.l d2,d0
muls.l #3,d0
move.l $18(a1),a0
fmove.s 0(a0,d0.l*4),fp0
; green = ((GLfloat*) image->Data)
move.l $C(a5),a1
move.l $18(a1),a0
move.l d2,d0
muls.l #3,d0
lea 4(a0),a0
fmove.s 0(a0,d0.l*4),fp4
; blue = ((GLfloat*) image->Data)
move.l $C(a5),a1
move.l $18(a1),a0
move.l d2,d0
muls.l #3,d0
lea $8(a0),a0
fmove.s 0(a0,d0.l*4),fp3
; alpha = 1.0;
fmove.s #$.3F800000,fp2
;
bra L649
L641
; red = ((GLfloat*) image->Data)
move.l $C(a5),a1
move.l d2,d0
moveq #2,d1
asl.l d1,d0
move.l $18(a1),a0
fmove.s 0(a0,d0.l*4),fp0
; green = ((GLfloat*) image->Data)
move.l $C(a5),a1
move.l $18(a1),a0
move.l d2,d0
moveq #2,d1
asl.l d1,d0
lea 4(a0),a0
fmove.s 0(a0,d0.l*4),fp4
; blue = ((GLfloat*) image->Data)
move.l $C(a5),a1
move.l $18(a1),a0
move.l d2,d0
moveq #2,d1
asl.l d1,d0
lea $8(a0),a0
fmove.s 0(a0,d0.l*4),fp3
; alpha = ((GLfloat*) image->Data)
move.l $C(a5),a1
move.l $18(a1),a0
move.l d2,d0
moveq #2,d1
asl.l d1,d0
lea $C(a0),a0
fmove.s 0(a0,d0.l*4),fp2
;
bra L649
L642
; red = ((GLfloat*) image->Data)
move.l $C(a5),a1
move.l $18(a1),a0
fmove.s 0(a0,d2.l*4),fp0
; green = 0.0;
fmove.s #$.00000000,fp4
; blue = 0.0;
fmove.s #$.00000000,fp3
; alpha = 1.0;
fmove.s #$.3F800000,fp2
;
bra L649
L643
; red = 0.0;
fmove.s #$.00000000,fp0
; green = ((GLfloat*) image->Data)
move.l $C(a5),a1
move.l $18(a1),a0
fmove.s 0(a0,d2.l*4),fp4
; blue = 0.0;
fmove.s #$.00000000,fp3
; alpha = 1.0;
fmove.s #$.3F800000,fp2
;
bra L649
L644
; red = 0.0;
fmove.s #$.00000000,fp0
; green = 0.0;
fmove.s #$.00000000,fp4
; blue = ((GLfloat*) image->Data)
move.l $C(a5),a1
move.l $18(a1),a0
fmove.s 0(a0,d2.l*4),fp3
; alpha = 1.0;
fmove.s #$.3F800000,fp2
;
bra L649
L645
; red = 0.0;
fmove.s #$.00000000,fp0
; green = 0.0;
fmove.s #$.00000000,fp4
; blue = 0.0;
fmove.s #$.00000000,fp3
; alpha = ((GLfloat*) image->Data)
move.l $C(a5),a1
move.l $18(a1),a0
fmove.s 0(a0,d2.l*4),fp2
;
bra L649
L646
; red = ((GLfloat*) image->Data)
move.l $C(a5),a1
move.l $18(a1),a0
fmove.s 0(a0,d2.l*4),fp0
; green = red;
fmove.x fp0,fp4
; blue = red;
fmove.x fp0,fp3
; alpha = 1.0;
fmove.s #$.3F800000,fp2
;
bra.b L649
L647
; red = ((GLfloat*) image->Data)
move.l $C(a5),a1
move.l d2,d0
moveq #1,d1
asl.l d1,d0
move.l $18(a1),a0
fmove.s 0(a0,d0.l*4),fp0
; green = red;
fmove.x fp0,fp4
; blue = red;
fmove.x fp0,fp3
; alpha = ((GLfloat*) image->Data)
move.l $C(a5),a1
move.l $18(a1),a0
move.l d2,d0
moveq #1,d1
asl.l d1,d0
lea 4(a0),a0
fmove.s 0(a0,d0.l*4),fp2
;
bra.b L649
L648
; gl_problem(ctx,"Bad format (4) i
move.l #L521,-(a7)
move.l a4,-(a7)
jsr _gl_problem
addq.w #$8,a7
moveq #0,d0
fmovem.x (a7)+,fp2/fp3/fp4
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L649
; return
; if (image->Format!=GL_COLOR_INDEX)
move.l $C(a5),a0
move.l $10(a0),d0
cmp.l #$1900,d0
beq L678
L650
; if (scaleOrBias)
tst.b d7
beq L676
L651
; red = red * ctx->Pixel.RedSc
move.l a4,a0
add.l #$B168,a0
fmul.s $8(a0),fp0
move.l a4,a0
add.l #$B168,a0
fadd.s 4(a0),fp0
; green = green * ctx->Pixel.Green
move.l a4,a0
add.l #$B168,a0
fmul.s $10(a0),fp4
move.l a4,a0
add.l #$B168,a0
fadd.s $C(a0),fp4
; blue = blue * ctx->Pixel.BlueS
move.l a4,a0
add.l #$B168,a0
fmul.s $18(a0),fp3
move.l a4,a0
add.l #$B168,a0
fadd.s $14(a0),fp3
; alpha = alpha * ctx->Pixel.Alpha
move.l a4,a0
add.l #$B168,a0
fmul.s $20(a0),fp2
move.l a4,a0
add.l #$B168,a0
fadd.s $1C(a0),fp2
; red = CLAMP( red, 0.0F, 1.0
fcmp.s #$.00000000,fp0
fboge.b L653
L652
fmove.s #$.00000000,fp0
bra.b L657
L653
fcmp.s #$.3F800000,fp0
fbole.b L655
L654
fmove.s #$.3F800000,fp0
L655
L656
L657
; green = CLAMP( green, 0.0F, 1.0
fcmp.s #$.00000000,fp4
fboge.b L659
L658
fmove.s #$.00000000,fp4
bra.b L663
L659
fcmp.s #$.3F800000,fp4
fbole.b L661
L660
fmove.s #$.3F800000,fp4
L661
L662
L663
; blue = CLAMP( blue, 0.0F, 1.0
fcmp.s #$.00000000,fp3
fboge.b L665
L664
fmove.s #$.00000000,fp3
bra.b L669
L665
fcmp.s #$.3F800000,fp3
fbole.b L667
L666
fmove.s #$.3F800000,fp3
L667
L668
L669
; alpha = CLAMP( alpha, 0.0F, 1.0
fcmp.s #$.00000000,fp2
fboge.b L671
L670
fmove.s #$.00000000,fp2
bra.b L675
L671
fcmp.s #$.3F800000,fp2
fbole.b L673
L672
fmove.s #$.3F800000,fp2
L673
L674
L675
L676
; if (ctx->Pixel.MapColorFlag)
move.l a4,a0
add.l #$B168,a0
tst.b $36(a0)
beq L678
L677
; GLint ir = (GLint) (red *ctx->P
move.l a4,a0
add.l #$B168,a0
fmove.l $58(a0),fp1
fmul.x fp1,fp0
fmove.l fp0,d4
; GLint ig = (GLint) (green*ctx->P
move.l a4,a0
add.l #$B168,a0
fmove.l $5C(a0),fp0
fmul.x fp0,fp4
fmove.l fp4,d3
; GLint ib = (GLint) (blue *ctx->P
move.l a4,a0
add.l #$B168,a0
fmove.l $60(a0),fp0
fmul.x fp0,fp3
fmove.l fp3,d1
; GLint ia = (GLint) (alpha*ctx->P
move.l a4,a0
add.l #$B168,a0
fmove.l $64(a0),fp0
fmul.x fp0,fp2
fmove.l fp2,d0
; red = ctx->Pixel.MapRtoR[ir];
move.l a4,a0
add.l #$CDD0,a0
fmove.s 0(a0,d4.l*4),fp0
; green = ctx->Pixel.MapGtoG[ig];
move.l a4,a0
add.l #$D1D0,a0
fmove.s 0(a0,d3.l*4),fp4
; blue = ctx->Pixel.MapBtoB[ib];
move.l a4,a0
add.l #$D5D0,a0
fmove.s 0(a0,d1.l*4),fp3
; alpha = ctx->Pixel.MapAtoA[ia];
move.l a4,a0
add.l #$D9D0,a0
fmove.s 0(a0,d0.l*4),fp2
L678
; switch (texImage->Format)
move.l (a2),d0
cmp.l #$1908,d0
beq L685
bgt.b L701
cmp.l #$1906,d0
beq.b L680
bgt.b L702
cmp.l #$1900,d0
beq.b L679
bra L686
L702
bgt L684
L701
cmp.l #$190A,d0
beq.b L682
bgt.b L703
blt.b L681
L703
cmp.l #$8049,d0
beq L683
bra L686
;
L679
; texImage->Data[pixel] = (GLint)
fmul.s #$.437F0000,fp0
fmove.l fp0,d0
move.l $34(a2),a0
move.b d0,0(a0,d2.l)
;
bra L687
L680
; texImage->Data[pixel] = (GLint)
fmove.x fp2,fp0
fmul.s #$.437F0000,fp0
fmove.l fp0,d0
move.l $34(a2),a0
move.b d0,0(a0,d2.l)
;
bra L687
L681
; texImage->Data[pixel] = (GLint)
fmul.s #$.437F0000,fp0
fmove.l fp0,d0
move.l $34(a2),a0
move.b d0,0(a0,d2.l)
;
bra L687
L682
; texImage->Data[pixel*2+0] = (GLi
fmul.s #$.437F0000,fp0
fmove.l fp0,d0
move.b d0,d1
move.l d2,d0
moveq #1,d3
asl.l d3,d0
move.l $34(a2),a0
move.b d1,0(a0,d0.l)
; texImage->Data[pixel*2+1] = (GLi
fmove.x fp2,fp0
fmul.s #$.437F0000,fp0
fmove.l fp0,d0
move.b d0,d1
move.l $34(a2),a0
move.l d2,d0
moveq #1,d3
asl.l d3,d0
lea 1(a0),a0
move.b d1,0(a0,d0.l)
;
bra L687
L683
; texImage->Data[pixel] = (GLint)
fmul.s #$.437F0000,fp0
fmove.l fp0,d0
move.l $34(a2),a0
move.b d0,0(a0,d2.l)
;
bra L687
L684
; texImage->Data[pixel*3+0] = (GLi
fmul.s #$.437F0000,fp0
fmove.l fp0,d0
move.b d0,d1
move.l d2,d0
muls.l #3,d0
move.l $34(a2),a0
move.b d1,0(a0,d0.l)
; texImage->Data[pixel*3+1] = (GLi
fmove.x fp4,fp0
fmul.s #$.437F0000,fp0
fmove.l fp0,d0
move.b d0,d1
move.l $34(a2),a0
move.l d2,d0
muls.l #3,d0
lea 1(a0),a0
move.b d1,0(a0,d0.l)
; texImage->Data[pixel*3+2] = (GLi
fmove.x fp3,fp0
fmul.s #$.437F0000,fp0
fmove.l fp0,d0
move.b d0,d1
move.l $34(a2),a0
move.l d2,d0
muls.l #3,d0
lea 2(a0),a0
move.b d1,0(a0,d0.l)
;
bra L687
L685
; texImage->Data[pixel*4+0] = (GLi
fmul.s #$.437F0000,fp0
fmove.l fp0,d0
move.b d0,d1
move.l d2,d0
moveq #2,d3
asl.l d3,d0
move.l $34(a2),a0
move.b d1,0(a0,d0.l)
; texImage->Data[pixel*4+1] = (GLi
fmove.x fp4,fp0
fmul.s #$.437F0000,fp0
fmove.l fp0,d0
move.b d0,d1
move.l $34(a2),a0
move.l d2,d0
moveq #2,d3
asl.l d3,d0
lea 1(a0),a0
move.b d1,0(a0,d0.l)
; texImage->Data[pixel*4+2] = (GLi
fmove.x fp3,fp0
fmul.s #$.437F0000,fp0
fmove.l fp0,d0
move.b d0,d1
move.l $34(a2),a0
move.l d2,d0
moveq #2,d3
asl.l d3,d0
lea 2(a0),a0
move.b d1,0(a0,d0.l)
; texImage->Data[pixel*4+3] = (GLi
fmove.x fp2,fp0
fmul.s #$.437F0000,fp0
fmove.l fp0,d0
move.b d0,d1
move.l $34(a2),a0
move.l d2,d0
moveq #2,d3
asl.l d3,d0
lea 3(a0),a0
move.b d1,0(a0,d0.l)
;
bra.b L687
L686
; gl_problem(ctx,"Bad format (5) i
move.l #L522,-(a7)
move.l a4,-(a7)
jsr _gl_problem
addq.w #$8,a7
moveq #0,d0
fmovem.x (a7)+,fp2/fp3/fp4
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L687
addq.l #1,d2
L688
cmp.l -$C(a5),d2
blt L632
L689
; return
;
bra.b L691
L690
; gl_problem(ctx, "Bad image type in image_to_textur
move.l #L523,-(a7)
move.l a4,-(a7)
jsr _gl_problem
addq.w #$8,a7
moveq #0,d0
fmovem.x (a7)+,fp2/fp3/fp4
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L691
; return
move.l a2,d0
fmovem.x (a7)+,fp2/fp3/fp4
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L519
dc.b 'Bad format (2) in image_to_texture',0
L520
dc.b 'Bad format (3) in image_to_texture',0
L521
dc.b 'Bad format (4) in image_to_texture',0
L522
dc.b 'Bad format (5) in image_to_texture',0
L518
dc.b 'Bad format in image_to_texture',0
L523
dc.b 'Bad image type in image_to_texture',0
SECTION "_make_null_texture:0",CODE
;static struct gl_texture_image *
_make_null_texture
L737 EQU -$126
link a5,#L737
movem.l d2-d7/a2/a3,-(a7)
movem.l $18(a5),d4/d6
move.l $10(a5),d5
move.l $C(a5),d7
L712
; (void) ctx;
; components = components_in_intformat(internalFormat);
move.l d7,-(a7)
jsr _components_in_intformat
addq.w #4,a7
move.l d0,d3
; numPixels = width * height * depth;
move.l d5,d2
muls.l $14(a5),d2
muls.l d4,d2
; texImage = gl_alloc_texture_image();
jsr _gl_alloc_texture_image
move.l d0,a2
; if (!texImage)
cmp.w #0,a2
bne.b L714
L713
moveq #0,d0
movem.l (a7)+,d2-d7/a2/a3
unlk a5
rts
L714
; texImage->Format = (GLenum) decode_internal_format(internalFor
move.l d7,-(a7)
jsr _decode_internal_format
addq.w #4,a7
move.l d0,(a2)
; texImage->IntFormat = internalFormat;
move.l d7,4(a2)
; texImage->Border = border;
move.l d6,$8(a2)
; texImage->Width = width;
move.l d5,$C(a2)
; texImage->Height = height;
move.l $14(a5),$10(a2)
; texImage->Depth = depth;
move.l d4,$14(a2)
; texImage->WidthLog2 = logbase2(width - 2*border);
move.l d6,d0
moveq #1,d1
asl.l d1,d0
move.l d5,d1
sub.l d0,d1
move.l d1,-(a7)
jsr _logbase2
addq.w #4,a7
move.l d0,$24(a2)
; if (height==1) /* 1-D texture */
move.l $14(a5),d0
cmp.l #1,d0
bne.b L716
L715
; texImage->HeightLog2 = 0;
clr.l $28(a2)
bra.b L717
L716
; texImage->HeightLog2 = logbase2(height - 2*border);
move.l d6,d0
moveq #1,d1
asl.l d1,d0
move.l $14(a5),d1
sub.l d0,d1
move.l d1,-(a7)
jsr _logbase2
addq.w #4,a7
move.l d0,$28(a2)
L717
; if (depth==1) /* 2-D texture */
cmp.l #1,d4
bne.b L719
L718
; texImage->DepthLog2 = 0;
clr.l $2C(a2)
bra.b L720
L719
; texImage->DepthLog2 = logbase2(depth - 2*border);
move.l d6,d0
moveq #1,d1
asl.l d1,d0
sub.l d0,d4
move.l d4,-(a7)
jsr _logbase2
addq.w #4,a7
move.l d0,$2C(a2)
L720
; texImage->Width2 = 1 << texImage->WidthLog2;
moveq #1,d0
move.l $24(a2),d1
asl.l d1,d0
move.l d0,$18(a2)
; texImage->Height2 = 1 << texImage->HeightLog2;
moveq #1,d0
move.l $28(a2),d1
asl.l d1,d0
move.l d0,$1C(a2)
; texImage->Depth2 = 1 << texImage->DepthLog2;
moveq #1,d0
move.l $2C(a2),d1
asl.l d1,d0
move.l d0,$20(a2)
; texImage->MaxLog2 = MAX2( texImage->WidthLog2, texImage->Heigh
move.l $24(a2),d1
cmp.l $28(a2),d1
bls.b L722
L721
move.l $24(a2),d0
bra.b L723
L722
move.l $28(a2),d0
L723
move.l d0,$30(a2)
; texImage->Data = (GLubyte *) malloc( numPixels * components );
muls.l d3,d2
move.l d2,-(a7)
jsr _malloc
addq.w #4,a7
move.l d0,$34(a2)
; if (texImage->Data)
tst.l $34(a2)
beq L736
L724
; char message[8][32] = {
lea -$10C(a5),a0
move.l #L704,a3
move.l a0,a1
moveq #7,d0
L738
move.l (a3)+,(a1)+
dbra d0,L738
add.w #$20,a0
move.l #L705,a3
move.l a0,a1
moveq #7,d0
L739
move.l (a3)+,(a1)+
dbra d0,L739
add.w #$20,a0
move.l #L706,a3
move.l a0,a1
moveq #7,d0
L740
move.l (a3)+,(a1)+
dbra d0,L740
add.w #$20,a0
move.l #L707,a3
move.l a0,a1
moveq #7,d0
L741
move.l (a3)+,(a1)+
dbra d0,L741
add.w #$20,a0
move.l #L708,a3
move.l a0,a1
moveq #7,d0
L742
move.l (a3)+,(a1)+
dbra d0,L742
add.w #$20,a0
move.l #L709,a3
move.l a0,a1
moveq #7,d0
L743
move.l (a3)+,(a1)+
dbra d0,L743
add.w #$20,a0
move.l #L710,a3
move.l a0,a1
moveq #7,d0
L744
move.l (a3)+,(a1)+
dbra d0,L744
move.l #L711,a1
add.w #$20,a0
moveq #7,d0
L745
move.l (a1)+,(a0)+
dbra d0,L745
; GLubyte *imgPtr = texImage->Data;
move.l $34(a2),a0
; for (i=0;
moveq #0,d7
bra.b L735
L725
; GLint srcRow = 7 - i % 8;
move.l d7,d0
divsl.l #$8,d1:d0
moveq #7,d4
sub.l d1,d4
; for (j=0;
moveq #0,d2
bra.b L733
L726
; GLint srcCol = j % 32;
move.l d2,d0
divsl.l #$20,d1:d0
move.l d1,d0
; GLubyte texel = (message[srcRow][srcCol]=='X
lea -$10C(a5),a1
move.l d4,d1
asl.l #5,d1
lea 0(a1,d1.l),a1
move.b 0(a1,d0.l),d0
cmp.b #$58,d0
bne.b L728
L727
move.l #$FF,d0
bra.b L729
L728
moveq #$46,d0
L729
move.b d0,d1
; for (k=0;
moveq #0,d0
bra.b L731
L730
; *imgPtr++ = texel;
move.b d1,(a0)+
addq.l #1,d0
L731
cmp.l d3,d0
blt.b L730
L732
addq.l #1,d2
L733
cmp.l d5,d2
blt.b L726
L734
move.l d7,d0
addq.l #1,d0
move.l d0,d7
L735
move.l d7,d0
cmp.l $14(a5),d0
blt.b L725
L736
move.l a2,d0
movem.l (a7)+,d2-d7/a2/a3
unlk a5
rts
L711
dc.b ' ',0
L708
dc.b ' X X X X X X ',0
L709
dc.b ' X X X X X X X ',0
L707
dc.b ' X X XXXX XXX XXXXX ',0
L704
dc.b ' X X XXXXX XXX X ',0
L710
dc.b ' X X XXXXX XXX X X ',0
L706
dc.b ' X X X X X X X ',0
L705
dc.b ' XX XX X X X X X ',0
SECTION "_texture_1d_error_check:0",CODE
;static GLboolean texture_1d_error_check( GLcontext *ctx, GLenum targ
_texture_1d_error_check
movem.l d2-d6/a2,-(a7)
movem.l $24(a7),d0/d1/d6
movem.l $34(a7),d2/d3
move.l $20(a7),d4
move.l $30(a7),d5
move.l $1C(a7),a2
L754
; if (target!=GL_TEXTURE_1D && target!=GL_PROXY_TEXTURE_1D)
cmp.l #$DE0,d4
beq.b L757
L755
cmp.l #$8063,d4
beq.b L757
L756
; gl_error( ctx, GL_INVALID_ENUM, "glTexImage1D" );
move.l #L746,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
moveq #1,d0
movem.l (a7)+,d2-d6/a2
rts
L757
; if (level<0 || level>=MAX_TEXTURE_LEVELS)
tst.l d0
bmi.b L759
L758
cmp.l #$B,d0
blt.b L760
L759
; gl_error( ctx, GL_INVALID_VALUE, "glTexImage1D(level)" );
move.l #L747,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
moveq #1,d0
movem.l (a7)+,d2-d6/a2
rts
L760
; iformat = decode_internal_format( internalFormat );
move.l d1,-(a7)
jsr _decode_internal_format
addq.w #4,a7
; if (iformat<0)
tst.l d0
bpl.b L762
L761
; gl_error( ctx, GL_INVALID_VALUE, "glTexImage1D(internalF
move.l #L748,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
moveq #1,d0
movem.l (a7)+,d2-d6/a2
rts
L762
; if (border!=0 && border!=1)
tst.l d3
beq.b L767
L763
cmp.l #1,d3
beq.b L767
L764
; if (target!=GL_PROXY_TEXTURE_1D)
cmp.l #$8063,d4
beq.b L766
L765
; gl_error( ctx, GL_INVALID_VALUE, "glTexImage1D(bor
move.l #L749,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
L766
moveq #1,d0
movem.l (a7)+,d2-d6/a2
rts
L767
; if (width<2*border || width>2+MAX_TEXTURE_SIZE)
move.l d3,d0
moveq #1,d1
asl.l d1,d0
cmp.l d0,d2
blt.b L769
L768
cmp.l #$402,d2
ble.b L772
L769
; if (target!=GL_PROXY_TEXTURE_1D)
cmp.l #$8063,d4
beq.b L771
L770
; gl_error( ctx, GL_INVALID_VALUE, "glTexImage1D(wid
move.l #L750,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
L771
moveq #1,d0
movem.l (a7)+,d2-d6/a2
rts
L772
; if (logbase2( width-2*border )<0)
move.l d3,d0
moveq #1,d3
asl.l d3,d0
sub.l d0,d2
move.l d2,-(a7)
jsr _logbase2
addq.w #4,a7
tst.l d0
bpl.b L774
L773
; gl_error( ctx, GL_INVALID_VALUE,
move.l #L751,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
moveq #1,d0
movem.l (a7)+,d2-d6/a2
rts
L774
; switch (format)
move.l d6,d0
cmp.l #$1907,d0
beq.b L775
bgt.b L781
cmp.l #$1904,d0
beq.b L775
bgt.b L782
cmp.l #$1900,d0
beq.b L775
cmp.l #$1903,d0
beq.b L775
bra.b L776
L782
cmp.l #$1905,d0
beq.b L775
cmp.l #$1906,d0
beq.b L775
bra.b L776
L781
cmp.l #$190A,d0
beq.b L775
bgt.b L783
cmp.l #$1908,d0
beq.b L775
cmp.l #$1909,d0
beq.b L775
bra.b L776
L783
cmp.l #$8000,d0
beq.b L775
bra.b L776
;
L775
;
bra.b L777
L776
; gl_error( ctx, GL_INVALID_ENUM, "glTexImage1D(form
move.l #L752,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
moveq #1,d0
movem.l (a7)+,d2-d6/a2
rts
L777
; return
; switch (type)
sub.l #$1400,d5
cmp.l #6,d5
bhi.b L779
move.l L784(pc,d5.l*4),a0
jmp (a0)
L784
dc.l L778
dc.l L778
dc.l L778
dc.l L778
dc.l L778
dc.l L778
dc.l L778
;
L778
;
bra.b L780
L779
; gl_error( ctx, GL_INVALID_ENUM, "glTexImage1D(type)
move.l #L753,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
moveq #1,d0
movem.l (a7)+,d2-d6/a2
rts
L780
; return
moveq #0,d0
movem.l (a7)+,d2-d6/a2
rts
L746
dc.b 'glTexImage1D',0
L749
dc.b 'glTexImage1D(border)',0
L752
dc.b 'glTexImage1D(format)',0
L748
dc.b 'glTexImage1D(internalFormat)',0
L747
dc.b 'glTexImage1D(level)',0
L753
dc.b 'glTexImage1D(type)',0
L751
dc.b 'glTexImage1D(width != 2^k + 2*border)',0
L750
dc.b 'glTexImage1D(width)',0
SECTION "_texture_2d_error_check:0",CODE
;static GLboolean texture_2d_error_check( GLcontext *ctx, GLenum targ
_texture_2d_error_check
movem.l d2-d7/a2,-(a7)
movem.l $28(a7),d0/d1/d7
move.l $40(a7),d2
move.l $3C(a7),d3
move.l $38(a7),d4
move.l $24(a7),d5
move.l $34(a7),d6
move.l $20(a7),a2
L795
; if (target!=GL_TEXTURE_2D && target!=GL_PROXY_TEXTURE_2D)
cmp.l #$DE1,d5
beq.b L798
L796
cmp.l #$8064,d5
beq.b L798
L797
; gl_error( ctx, GL_INVALID_ENUM, "glTexImage2D(target)" );
move.l #L785,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
moveq #1,d0
movem.l (a7)+,d2-d7/a2
rts
L798
; if (level<0 || level>=MAX_TEXTURE_LEVELS)
tst.l d0
bmi.b L800
L799
cmp.l #$B,d0
blt.b L801
L800
; gl_error( ctx, GL_INVALID_VALUE, "glTexImage2D(level)" );
move.l #L786,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
moveq #1,d0
movem.l (a7)+,d2-d7/a2
rts
L801
; iformat = decode_internal_format( internalFormat );
move.l d1,-(a7)
jsr _decode_internal_format
addq.w #4,a7
; if (iformat<0)
tst.l d0
bpl.b L803
L802
; gl_error( ctx, GL_INVALID_VALUE, "glTexImage2D(internalF
move.l #L787,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
moveq #1,d0
movem.l (a7)+,d2-d7/a2
rts
L803
; if (border!=0 && border!=1)
tst.l d2
beq.b L808
L804
cmp.l #1,d2
beq.b L808
L805
; if (target!=GL_PROXY_TEXTURE_2D)
cmp.l #$8064,d5
beq.b L807
L806
; gl_error( ctx, GL_INVALID_VALUE, "glTexImage2D(bor
move.l #L788,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
L807
moveq #1,d0
movem.l (a7)+,d2-d7/a2
rts
L808
; if (width<2*border || width>2+MAX_TEXTURE_SIZE)
move.l d2,d0
moveq #1,d1
asl.l d1,d0
cmp.l d0,d4
blt.b L810
L809
cmp.l #$402,d4
ble.b L813
L810
; if (target!=GL_PROXY_TEXTURE_2D)
cmp.l #$8064,d5
beq.b L812
L811
; gl_error( ctx, GL_INVALID_VALUE, "glTexImage2D(wid
move.l #L789,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
L812
moveq #1,d0
movem.l (a7)+,d2-d7/a2
rts
L813
; if (height<2*border || height>2+MAX_TEXTURE_SIZE)
move.l d2,d0
moveq #1,d1
asl.l d1,d0
cmp.l d0,d3
blt.b L815
L814
cmp.l #$402,d3
ble.b L818
L815
; if (target!=GL_PROXY_TEXTURE_2D)
cmp.l #$8064,d5
beq.b L817
L816
; gl_error( ctx, GL_INVALID_VALUE, "glTexImage2D(hei
move.l #L790,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
L817
moveq #1,d0
movem.l (a7)+,d2-d7/a2
rts
L818
; if (logbase2( width-2*border )<0)
move.l d2,d0
moveq #1,d1
asl.l d1,d0
sub.l d0,d4
move.l d4,-(a7)
jsr _logbase2
addq.w #4,a7
tst.l d0
bpl.b L820
L819
; gl_error( ctx,GL_INVALID_VALUE,
move.l #L791,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
moveq #1,d0
movem.l (a7)+,d2-d7/a2
rts
L820
; if (logbase2( height-2*border )<0)
move.l d2,d0
moveq #1,d2
asl.l d2,d0
sub.l d0,d3
move.l d3,-(a7)
jsr _logbase2
addq.w #4,a7
tst.l d0
bpl.b L822
L821
; gl_error( ctx,GL_INVALID_VALUE,
move.l #L792,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
moveq #1,d0
movem.l (a7)+,d2-d7/a2
rts
L822
; switch (format)
move.l d7,d0
cmp.l #$1907,d0
beq.b L823
bgt.b L829
cmp.l #$1904,d0
beq.b L823
bgt.b L830
cmp.l #$1900,d0
beq.b L823
cmp.l #$1903,d0
beq.b L823
bra.b L824
L830
cmp.l #$1905,d0
beq.b L823
cmp.l #$1906,d0
beq.b L823
bra.b L824
L829
cmp.l #$190A,d0
beq.b L823
bgt.b L831
cmp.l #$1908,d0
beq.b L823
cmp.l #$1909,d0
beq.b L823
bra.b L824
L831
cmp.l #$8000,d0
beq.b L823
bra.b L824
;
L823
;
bra.b L825
L824
; gl_error( ctx, GL_INVALID_ENUM, "glTexImage2D(form
move.l #L793,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
moveq #1,d0
movem.l (a7)+,d2-d7/a2
rts
L825
; return
; switch (type)
move.l d6,d0
sub.l #$1400,d0
cmp.l #6,d0
bhi.b L827
move.l L832(pc,d0.l*4),a0
jmp (a0)
L832
dc.l L826
dc.l L826
dc.l L826
dc.l L826
dc.l L826
dc.l L826
dc.l L826
;
L826
;
bra.b L828
L827
; gl_error( ctx, GL_INVALID_ENUM, "glTexImage2D(type)
move.l #L794,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
moveq #1,d0
movem.l (a7)+,d2-d7/a2
rts
L828
; return
moveq #0,d0
movem.l (a7)+,d2-d7/a2
rts
L788
dc.b 'glTexImage2D(border)',0
L793
dc.b 'glTexImage2D(format)',0
L792
dc.b 'glTexImage2D(height != 2^k + 2*border)',0
L790
dc.b 'glTexImage2D(height)',0
L787
dc.b 'glTexImage2D(internalFormat)',0
L786
dc.b 'glTexImage2D(level)',0
L785
dc.b 'glTexImage2D(target)',0
L794
dc.b 'glTexImage2D(type)',0
L791
dc.b 'glTexImage2D(width != 2^k + 2*border)',0
L789
dc.b 'glTexImage2D(width)',0
SECTION "_texture_3d_error_check:0",CODE
;static GLboolean texture_3d_error_check( GLcontext *ctx, GLenum targ
_texture_3d_error_check
L886 EQU -4
link a5,#L886
movem.l d2-d7/a2,-(a7)
movem.l $10(a5),d0/d1
move.l $2C(a5),d2
move.l $C(a5),d3
move.l $28(a5),d4
move.l $24(a5),d5
move.l $20(a5),d6
move.l $1C(a5),d7
move.l $8(a5),a2
L845
; if (target!=GL_TEXTURE_3D_EXT && target!=GL_PROXY_TEXTURE_3D_E
cmp.l #$806F,d3
beq.b L848
L846
cmp.l #$8070,d3
beq.b L848
L847
; gl_error( ctx, GL_INVALID_ENUM, "glTexImage3DEXT(target)
move.l #L833,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
moveq #1,d0
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L848
; if (level<0 || level>=MAX_TEXTURE_LEVELS)
tst.l d0
bmi.b L850
L849
cmp.l #$B,d0
blt.b L851
L850
; gl_error( ctx, GL_INVALID_VALUE, "glTexImage3DEXT(level)
move.l #L834,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
moveq #1,d0
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L851
; iformat = decode_internal_format( internalFormat );
move.l d1,-(a7)
jsr _decode_internal_format
addq.w #4,a7
; if (iformat<0)
tst.l d0
bpl.b L853
L852
; gl_error( ctx, GL_INVALID_VALUE, "glTexImage3DEXT(intern
move.l #L835,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
moveq #1,d0
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L853
; if (border!=0 && border!=1)
tst.l d2
beq.b L858
L854
cmp.l #1,d2
beq.b L858
L855
; if (target!=GL_PROXY_TEXTURE_3D_EXT)
cmp.l #$8070,d3
beq.b L857
L856
; gl_error( ctx, GL_INVALID_VALUE, "glTexImage3DEXT(
move.l #L836,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
L857
moveq #1,d0
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L858
; if (width<2*border || width>2+MAX_TEXTURE_SIZE)
move.l d2,d0
moveq #1,d1
asl.l d1,d0
move.l d6,d1
cmp.l d0,d1
blt.b L860
L859
move.l d6,d0
cmp.l #$402,d0
ble.b L863
L860
; if (target!=GL_PROXY_TEXTURE_3D_EXT)
cmp.l #$8070,d3
beq.b L862
L861
; gl_error( ctx, GL_INVALID_VALUE, "glTexImage3DEXT(
move.l #L837,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
L862
moveq #1,d0
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L863
; if (height<2*border || height>2+MAX_TEXTURE_SIZE)
move.l d2,d0
moveq #1,d1
asl.l d1,d0
cmp.l d0,d5
blt.b L865
L864
cmp.l #$402,d5
ble.b L868
L865
; if (target!=GL_PROXY_TEXTURE_3D_EXT)
cmp.l #$8070,d3
beq.b L867
L866
; gl_error( ctx, GL_INVALID_VALUE, "glTexImage3DEXT(
move.l #L838,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
L867
moveq #1,d0
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L868
; if (depth<2*border || depth>2+MAX_TEXTURE_SIZE)
move.l d2,d0
moveq #1,d1
asl.l d1,d0
cmp.l d0,d4
blt.b L870
L869
cmp.l #$402,d4
ble.b L873
L870
; if (target!=GL_PROXY_TEXTURE_3D_EXT)
cmp.l #$8070,d3
beq.b L872
L871
; gl_error( ctx, GL_INVALID_VALUE, "glTexImage3DEXT(
move.l #L839,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
L872
moveq #1,d0
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L873
; if (logbase2( width-2*border )<0)
move.l d2,d0
moveq #1,d1
asl.l d1,d0
move.l d6,d1
sub.l d0,d1
move.l d1,-(a7)
jsr _logbase2
addq.w #4,a7
tst.l d0
bpl.b L875
L874
; gl_error( ctx,GL_INVALID_VALUE,
move.l #L840,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
moveq #1,d0
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L875
; if (logbase2( height-2*border )<0)
move.l d2,d0
moveq #1,d1
asl.l d1,d0
sub.l d0,d5
move.l d5,-(a7)
jsr _logbase2
addq.w #4,a7
tst.l d0
bpl.b L877
L876
; gl_error( ctx,GL_INVALID_VALUE,
move.l #L841,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
moveq #1,d0
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L877
; if (logbase2( depth-2*border )<0)
move.l d2,d0
moveq #1,d2
asl.l d2,d0
sub.l d0,d4
move.l d4,-(a7)
jsr _logbase2
addq.w #4,a7
tst.l d0
bpl.b L879
L878
; gl_error( ctx,GL_INVALID_VALUE,
move.l #L842,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
moveq #1,d0
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L879
; switch (format)
move.l $18(a5),d0
cmp.l #$1907,d0
beq.b L880
bgt.b L887
cmp.l #$1904,d0
beq.b L880
bgt.b L888
cmp.l #$1900,d0
beq.b L880
cmp.l #$1903,d0
beq.b L880
bra.b L881
L888
cmp.l #$1905,d0
beq.b L880
cmp.l #$1906,d0
beq.b L880
bra.b L881
L887
cmp.l #$190A,d0
beq.b L880
bgt.b L889
cmp.l #$1908,d0
beq.b L880
cmp.l #$1909,d0
beq.b L880
bra.b L881
L889
cmp.l #$8000,d0
beq.b L880
bra.b L881
;
L880
;
bra.b L882
L881
; gl_error( ctx, GL_INVALID_ENUM, "glTexImage3DEXT(f
move.l #L843,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
moveq #1,d0
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L882
; return
; switch (type)
move.l d7,d0
sub.l #$1400,d0
cmp.l #6,d0
bhi.b L884
move.l L890(pc,d0.l*4),a0
jmp (a0)
L890
dc.l L883
dc.l L883
dc.l L883
dc.l L883
dc.l L883
dc.l L883
dc.l L883
;
L883
;
bra.b L885
L884
; gl_error( ctx, GL_INVALID_ENUM, "glTexImage3DEXT(t
move.l #L844,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
moveq #1,d0
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L885
; return
moveq #0,d0
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L836
dc.b 'glTexImage3DEXT(border)',0
L842
dc.b 'glTexImage3DEXT(depth != 2^k + 2*border))',0
L839
dc.b 'glTexImage3DEXT(depth)',0
L843
dc.b 'glTexImage3DEXT(format)',0
L841
dc.b 'glTexImage3DEXT(height != 2^k + 2*border))',0
L838
dc.b 'glTexImage3DEXT(height)',0
L835
dc.b 'glTexImage3DEXT(internalFormat)',0
L834
dc.b 'glTexImage3DEXT(level)',0
L833
dc.b 'glTexImage3DEXT(target)',0
L844
dc.b 'glTexImage3DEXT(type)',0
L840
dc.b 'glTexImage3DEXT(width != 2^k + 2*border))',0
L837
dc.b 'glTexImage3DEXT(width)',0
SECTION "_gl_TexImage1D:0",CODE
;void gl_TexImage1D( GLcontext *ctx,
XDEF _gl_TexImage1D
_gl_TexImage1D
L922 EQU -$8
link a5,#L922
movem.l d2-d7/a2-a4,-(a7)
movem.l $C(a5),d0/d2/d3/d5
move.l $20(a5),d1
move.l $1C(a5),d4
move.l $8(a5),a2
move.l $28(a5),a3
L893
; struct gl_texture_set *texSet = &ctx->Texture.Set[ctx->Texture
move.l a2,a1
add.l #$DEC6,a1
move.l a2,a0
add.l #$DEBA,a0
move.l (a0),d6
muls.l #$BC,d6
add.l a1,d6
move.l d6,a4
; if (INSIDE_BEGIN_END(ctx))
move.l a2,a0
add.l #$E968,a0
move.l (a0),d6
cmp.l #$1A00,d6
beq.b L895
L894
; gl_error( ctx, GL_INVALID_OPERATION, "glTexImage1D" );
move.l #L891,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L895
; if (target==GL_TEXTURE_1D)
cmp.l #$DE0,d0
bne L909
L896
; if (texture_1d_error_check( ctx, target, level, internal
move.l d4,-(a7)
move.l d5,-(a7)
move.l $24(a5),-(a7)
move.l d1,-(a7)
move.l d3,-(a7)
move.l d2,-(a7)
move.l d0,-(a7)
move.l a2,-(a7)
jsr _texture_1d_error_check
add.w #$20,a7
tst.b d0
beq.b L898
L897
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L898
; if (texSet->Current1D->Image[level])
move.l a4,a1
move.l $A8(a1),a0
lea $50(a0),a0
tst.l 0(a0,d2.l*4)
beq.b L900
L899
; gl_free_texture_image( texSet->Current1D->Image[le
move.l a4,a1
move.l $A8(a1),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),-(a7)
jsr _gl_free_texture_image
addq.w #4,a7
L900
; if (image)
cmp.w #0,a3
beq.b L902
L901
; teximage = image_to_texture(ctx, image, internalfo
move.l d4,-(a7)
move.l d3,-(a7)
move.l a3,-(a7)
move.l a2,-(a7)
jsr _image_to_texture
add.w #$10,a7
move.l d0,-$8(a5)
bra.b L903
L902
; teximage = make_null_texture(ctx, (GLenum) interna
move.l d4,-(a7)
pea 1.w
pea 1.w
move.l d5,-(a7)
move.l d3,-(a7)
move.l a2,-(a7)
jsr _make_null_texture
add.w #$18,a7
move.l d0,-$8(a5)
L903
; texSet->Current1D->Image[level] = teximage;
move.l a4,a1
move.l $A8(a1),a0
lea $50(a0),a0
move.l -$8(a5),0(a0,d2.l*4)
; texSet->Current1D->Dirty = GL_TRUE;
move.l a4,a1
move.l $A8(a1),a0
move.b #1,$488(a0)
; ctx->Texture.AnyDirty = GL_TRUE;
move.l a2,a0
add.l #$E03E,a0
move.b #1,(a0)
; ctx->NewState |= NEW_TEXTURING;
move.l a2,a0
add.l #$E960,a0
move.l (a0),d0
or.l #4,d0
move.l a2,a0
add.l #$E960,a0
move.l d0,(a0)
; if (image && image->RefCount==0)
cmp.w #0,a3
beq.b L906
L904
move.l a3,a0
tst.l $1E(a0)
bne.b L906
L905
; gl_free_image(image);
move.l a3,-(a7)
jsr _gl_free_image
addq.w #4,a7
L906
; if (ctx->Driver.TexImage)
tst.l $9C8(a2)
beq.b L908
L907
; width, height, 1, border);
move.l -$8(a5),-(a7)
move.l d3,-(a7)
move.l d2,-(a7)
move.l a4,a1
move.l $A8(a1),-(a7)
pea $DE0.w
move.l a2,-(a7)
move.l $9C8(a2),a0
jsr (a0)
add.w #$18,a7
L908
bra L921
L909
; else if (target==GL_PROXY_TEXTURE_1D)
cmp.l #$8063,d0
bne L920
L910
; if (texture_1d_error_check( ctx, target, level, internal
move.l d4,-(a7)
move.l d5,-(a7)
move.l $24(a5),-(a7)
move.l d1,-(a7)
move.l d3,-(a7)
move.l d2,-(a7)
move.l d0,-(a7)
move.l a2,-(a7)
jsr _texture_1d_error_check
add.w #$20,a7
tst.b d0
beq.b L915
L911
; if (level>=0 && level<MAX_TEXTURE_LEVELS)
tst.l d2
bmi.b L914
L912
cmp.l #$B,d2
bge.b L914
L913
;
pea $3C.w
clr.l -(a7)
move.l a2,a0
add.l #$DEBA,a0
move.l $186(a0),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),-(a7)
jsr _q_memset
add.w #$C,a7
L914
bra L916
L915
; ctx->Texture.Proxy1D->Image[level]->Format = (GLen
move.l a2,a0
add.l #$DEBA,a0
move.l $186(a0),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),a0
move.l d3,(a0)
; ctx->Texture.Proxy1D->Image[level]->IntFormat = (G
move.l a2,a0
add.l #$DEBA,a0
move.l $186(a0),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),a0
move.l d3,4(a0)
; ctx->Texture.Proxy1D->Image[level]->Border = borde
move.l a2,a0
add.l #$DEBA,a0
move.l $186(a0),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),a0
move.l d4,$8(a0)
; ctx->Texture.Proxy1D->Image[level]->Width = width;
move.l a2,a0
add.l #$DEBA,a0
move.l $186(a0),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),a0
move.l d5,$C(a0)
; ctx->Texture.Proxy1D->Image[level]->Height = 1;
move.l a2,a0
add.l #$DEBA,a0
move.l $186(a0),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),a0
move.l #1,$10(a0)
L916
; if (image && image->RefCount==0)
cmp.w #0,a3
beq.b L919
L917
move.l a3,a0
tst.l $1E(a0)
bne.b L919
L918
; gl_free_image(image);
move.l a3,-(a7)
jsr _gl_free_image
addq.w #4,a7
L919
bra.b L921
L920
; gl_error( ctx, GL_INVALID_ENUM, "glTexImage1D(target)" );
move.l #L892,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L921
; return;
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L891
dc.b 'glTexImage1D',0
L892
dc.b 'glTexImage1D(target)',0
SECTION "_gl_TexImage2D:0",CODE
;void gl_TexImage2D( GLcontext *ctx,
XDEF _gl_TexImage2D
_gl_TexImage2D
L954 EQU -$8
link a5,#L954
movem.l d2-d7/a2-a4,-(a7)
movem.l $C(a5),d0/d2/d3/d5
move.l $24(a5),d1
move.l $20(a5),d4
move.l $8(a5),a2
move.l $2C(a5),a3
L925
; struct gl_texture_set *texSet = &ctx->Texture.Set[ctx->Texture
move.l a2,a1
add.l #$DEC6,a1
move.l a2,a0
add.l #$DEBA,a0
move.l (a0),d6
muls.l #$BC,d6
add.l a1,d6
move.l d6,a4
; if (INSIDE_BEGIN_END(ctx))
move.l a2,a0
add.l #$E968,a0
move.l (a0),d6
cmp.l #$1A00,d6
beq.b L927
L926
; gl_error( ctx, GL_INVALID_OPERATION, "glTexImage2D" );
move.l #L923,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L927
; if (target==GL_TEXTURE_2D)
cmp.l #$DE1,d0
bne L941
L928
; if (texture_2d_error_check( ctx, target, level, internal
move.l d4,-(a7)
move.l $1C(a5),-(a7)
move.l d5,-(a7)
move.l $28(a5),-(a7)
move.l d1,-(a7)
move.l d3,-(a7)
move.l d2,-(a7)
move.l d0,-(a7)
move.l a2,-(a7)
jsr _texture_2d_error_check
add.w #$24,a7
tst.b d0
beq.b L930
L929
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L930
; if (texSet->Current2D->Image[level])
move.l a4,a1
move.l $AC(a1),a0
lea $50(a0),a0
tst.l 0(a0,d2.l*4)
beq.b L932
L931
; gl_free_texture_image( texSet->Current2D->Image[le
move.l a4,a1
move.l $AC(a1),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),-(a7)
jsr _gl_free_texture_image
addq.w #4,a7
L932
; if (image)
cmp.w #0,a3
beq.b L934
L933
; teximage = image_to_texture(ctx, image, internalfo
move.l d4,-(a7)
move.l d3,-(a7)
move.l a3,-(a7)
move.l a2,-(a7)
jsr _image_to_texture
add.w #$10,a7
move.l d0,-$8(a5)
bra.b L935
L934
; teximage = make_null_texture(ctx, (GLenum) interna
move.l d4,-(a7)
pea 1.w
move.l $1C(a5),-(a7)
move.l d5,-(a7)
move.l d3,-(a7)
move.l a2,-(a7)
jsr _make_null_texture
add.w #$18,a7
move.l d0,-$8(a5)
L935
; texSet->Current2D->Image[level] = teximage;
move.l a4,a1
move.l $AC(a1),a0
lea $50(a0),a0
move.l -$8(a5),0(a0,d2.l*4)
; texSet->Current2D->Dirty = GL_TRUE;
move.l a4,a1
move.l $AC(a1),a0
move.b #1,$488(a0)
; ctx->Texture.AnyDirty = GL_TRUE;
move.l a2,a0
add.l #$E03E,a0
move.b #1,(a0)
; ctx->NewState |= NEW_TEXTURING;
move.l a2,a0
add.l #$E960,a0
move.l (a0),d0
or.l #4,d0
move.l a2,a0
add.l #$E960,a0
move.l d0,(a0)
; if (image && image->RefCount==0)
cmp.w #0,a3
beq.b L938
L936
move.l a3,a0
tst.l $1E(a0)
bne.b L938
L937
; gl_free_image(image);
move.l a3,-(a7)
jsr _gl_free_image
addq.w #4,a7
L938
; if (ctx->Driver.TexImage)
tst.l $9C8(a2)
beq.b L940
L939
; (*ctx->Driver.TexImage)( ctx, GL_TEXTURE_2D,
move.l -$8(a5),-(a7)
move.l d3,-(a7)
move.l d2,-(a7)
move.l a4,a1
move.l $AC(a1),-(a7)
pea $DE1.w
move.l a2,-(a7)
move.l $9C8(a2),a0
jsr (a0)
add.w #$18,a7
L940
bra L953
L941
; else if (target==GL_PROXY_TEXTURE_2D)
cmp.l #$8064,d0
bne L952
L942
; if (texture_2d_error_check( ctx, target, level, internal
move.l d4,-(a7)
move.l $1C(a5),-(a7)
move.l d5,-(a7)
move.l $28(a5),-(a7)
move.l d1,-(a7)
move.l d3,-(a7)
move.l d2,-(a7)
move.l d0,-(a7)
move.l a2,-(a7)
jsr _texture_2d_error_check
add.w #$24,a7
tst.b d0
beq.b L947
L943
; if (level>=0 && level<MAX_TEXTURE_LEVELS)
tst.l d2
bmi.b L946
L944
cmp.l #$B,d2
bge.b L946
L945
;
pea $3C.w
clr.l -(a7)
move.l a2,a0
add.l #$DEBA,a0
move.l $18A(a0),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),-(a7)
jsr _q_memset
add.w #$C,a7
L946
bra.b L948
L947
; ctx->Texture.Proxy2D->Image[level]->Format = (GLen
move.l a2,a0
add.l #$DEBA,a0
move.l $18A(a0),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),a0
move.l d3,(a0)
; ctx->Texture.Proxy2D->Image[level]->IntFormat = (G
move.l a2,a0
add.l #$DEBA,a0
move.l $18A(a0),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),a0
move.l d3,4(a0)
; ctx->Texture.Proxy2D->Image[level]->Border = borde
move.l a2,a0
add.l #$DEBA,a0
move.l $18A(a0),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),a0
move.l d4,$8(a0)
; ctx->Texture.Proxy2D->Image[level]->Width = width;
move.l a2,a0
add.l #$DEBA,a0
move.l $18A(a0),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),a0
move.l d5,$C(a0)
; ctx->Texture.Proxy2D->Image[level]->Height = heigh
move.l a2,a0
add.l #$DEBA,a0
move.l $18A(a0),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),a0
move.l $1C(a5),$10(a0)
L948
; if (image && image->RefCount==0)
cmp.w #0,a3
beq.b L951
L949
move.l a3,a0
tst.l $1E(a0)
bne.b L951
L950
; gl_free_image(image);
move.l a3,-(a7)
jsr _gl_free_image
addq.w #4,a7
L951
bra.b L953
L952
; gl_error( ctx, GL_INVALID_ENUM, "glTexImage2D(target)" );
move.l #L924,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L953
; return;
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L923
dc.b 'glTexImage2D',0
L924
dc.b 'glTexImage2D(target)',0
SECTION "_gl_TexImage3DEXT:0",CODE
;void gl_TexImage3DEXT( GLcontext *ctx,
XDEF _gl_TexImage3DEXT
_gl_TexImage3DEXT
L986 EQU -$8
link a5,#L986
movem.l d2-d7/a2-a4,-(a7)
movem.l $C(a5),d0/d2/d3/d5
move.l $28(a5),d1
move.l $24(a5),d4
move.l $8(a5),a2
move.l $30(a5),a3
L957
; struct gl_texture_set *texSet = &ctx->Texture.Set[ctx->Texture
move.l a2,a1
add.l #$DEC6,a1
move.l a2,a0
add.l #$DEBA,a0
move.l (a0),d6
muls.l #$BC,d6
add.l a1,d6
move.l d6,a4
; if (INSIDE_BEGIN_END(ctx))
move.l a2,a0
add.l #$E968,a0
move.l (a0),d6
cmp.l #$1A00,d6
beq.b L959
L958
; gl_error( ctx, GL_INVALID_OPERATION, "glTexImage3DEXT" );
move.l #L955,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L959
; if (target==GL_TEXTURE_3D_EXT)
cmp.l #$806F,d0
bne L973
L960
; }
move.l d4,-(a7)
move.l $20(a5),-(a7)
move.l $1C(a5),-(a7)
move.l d5,-(a7)
move.l $2C(a5),-(a7)
move.l d1,-(a7)
move.l d3,-(a7)
move.l d2,-(a7)
move.l d0,-(a7)
move.l a2,-(a7)
jsr _texture_3d_error_check
add.w #$28,a7
tst.b d0
beq.b L962
L961
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L962
; if (texSet->Current3D->Image[level])
move.l a4,a1
move.l $B0(a1),a0
lea $50(a0),a0
tst.l 0(a0,d2.l*4)
beq.b L964
L963
; gl_free_texture_image( texSet->Current3D->Image[le
move.l a4,a1
move.l $B0(a1),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),-(a7)
jsr _gl_free_texture_image
addq.w #4,a7
L964
; if (image)
cmp.w #0,a3
beq.b L966
L965
; teximage = image_to_texture(ctx, image, internalfo
move.l d4,-(a7)
move.l d3,-(a7)
move.l a3,-(a7)
move.l a2,-(a7)
jsr _image_to_texture
add.w #$10,a7
move.l d0,-$8(a5)
bra.b L967
L966
; teximage = make_null_texture(ctx, (GLenum) interna
move.l d4,-(a7)
move.l $20(a5),-(a7)
move.l $1C(a5),-(a7)
move.l d5,-(a7)
move.l d3,-(a7)
move.l a2,-(a7)
jsr _make_null_texture
add.w #$18,a7
move.l d0,-$8(a5)
L967
; texSet->Current3D->Image[level] = teximage;
move.l a4,a1
move.l $B0(a1),a0
lea $50(a0),a0
move.l -$8(a5),0(a0,d2.l*4)
; texSet->Current3D->Dirty = GL_TRUE;
move.l a4,a1
move.l $B0(a1),a0
move.b #1,$488(a0)
; ctx->Texture.AnyDirty = GL_TRUE;
move.l a2,a0
add.l #$E03E,a0
move.b #1,(a0)
; ctx->NewState |= NEW_TEXTURING;
move.l a2,a0
add.l #$E960,a0
move.l (a0),d0
or.l #4,d0
move.l a2,a0
add.l #$E960,a0
move.l d0,(a0)
; if (image && image->RefCount==0)
cmp.w #0,a3
beq.b L970
L968
move.l a3,a0
tst.l $1E(a0)
bne.b L970
L969
; gl_free_image(image);
move.l a3,-(a7)
jsr _gl_free_image
addq.w #4,a7
L970
; if (ctx->Driver.TexImage)
tst.l $9C8(a2)
beq.b L972
L971
; (*ctx->Driver.TexImage)( ctx, GL_TEXTURE_3D_EXT,
move.l -$8(a5),-(a7)
move.l d3,-(a7)
move.l d2,-(a7)
move.l a4,a1
move.l $B0(a1),-(a7)
move.l #$806F,-(a7)
move.l a2,-(a7)
move.l $9C8(a2),a0
jsr (a0)
add.w #$18,a7
L972
bra L985
L973
; else if (target==GL_PROXY_TEXTURE_3D_EXT)
cmp.l #$8070,d0
bne L984
L974
; if (texture_3d_error_check( ctx, target, level, internal
move.l d4,-(a7)
move.l $20(a5),-(a7)
move.l $1C(a5),-(a7)
move.l d5,-(a7)
move.l $2C(a5),-(a7)
move.l d1,-(a7)
move.l d3,-(a7)
move.l d2,-(a7)
move.l d0,-(a7)
move.l a2,-(a7)
jsr _texture_3d_error_check
add.w #$28,a7
tst.b d0
beq.b L979
L975
; if (level>=0 && level<MAX_TEXTURE_LEVELS)
tst.l d2
bmi.b L978
L976
cmp.l #$B,d2
bge.b L978
L977
;
pea $3C.w
clr.l -(a7)
move.l a2,a0
add.l #$DEBA,a0
move.l $18E(a0),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),-(a7)
jsr _q_memset
add.w #$C,a7
L978
bra L980
L979
; ctx->Texture.Proxy3D->Image[level]->Format = (GLen
move.l a2,a0
add.l #$DEBA,a0
move.l $18E(a0),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),a0
move.l d3,(a0)
; ctx->Texture.Proxy3D->Image[level]->IntFormat = (G
move.l a2,a0
add.l #$DEBA,a0
move.l $18E(a0),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),a0
move.l d3,4(a0)
; ctx->Texture.Proxy3D->Image[level]->Border = borde
move.l a2,a0
add.l #$DEBA,a0
move.l $18E(a0),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),a0
move.l d4,$8(a0)
; ctx->Texture.Proxy3D->Image[level]->Width = width;
move.l a2,a0
add.l #$DEBA,a0
move.l $18E(a0),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),a0
move.l d5,$C(a0)
; ctx->Texture.Proxy3D->Image[level]->Height = heigh
move.l a2,a0
add.l #$DEBA,a0
move.l $18E(a0),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),a0
move.l $1C(a5),$10(a0)
; ctx->Texture.Proxy3D->Image[level]->Depth = depth;
move.l a2,a0
add.l #$DEBA,a0
move.l $18E(a0),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),a0
move.l $20(a5),$14(a0)
L980
; if (image && image->RefCount==0)
cmp.w #0,a3
beq.b L983
L981
move.l a3,a0
tst.l $1E(a0)
bne.b L983
L982
; gl_free_image(image);
move.l a3,-(a7)
jsr _gl_free_image
addq.w #4,a7
L983
bra.b L985
L984
; gl_error( ctx, GL_INVALID_ENUM, "glTexImage3DEXT(target)
move.l #L956,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L985
; return;
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L955
dc.b 'glTexImage3DEXT',0
L956
dc.b 'glTexImage3DEXT(target)',0
SECTION "_gl_GetTexImage:0",CODE
;void gl_GetTexImage( GLcontext *ctx, GLenum target, GLint level, GLe
XDEF _gl_GetTexImage
_gl_GetTexImage
L1044 EQU -$1920
link a5,#L1044
movem.l d2-d7/a2-a4,-(a7)
movem.l $10(a5),d2/d4/d5
move.l $C(a5),d3
move.l $8(a5),a2
L995
; if (INSIDE_BEGIN_END(ctx))
move.l a2,a0
add.l #$E968,a0
move.l (a0),d0
cmp.l #$1A00,d0
beq.b L997
L996
; gl_error( ctx, GL_INVALID_OPERATION, "glGetTexImage" );
move.l #L987,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L997
; if (level < 0 || level >= MAX_TEXTURE_LEVELS)
tst.l d2
bmi.b L999
L998
cmp.l #$B,d2
blt.b L1000
L999
; gl_error( ctx, GL_INVALID_VALUE, "glGetTexImage(level)" )
move.l #L988,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1000
; if (gl_sizeof_type(type) <= 0)
move.l d5,-(a7)
jsr _gl_sizeof_type
addq.w #4,a7
cmp.l #0,d0
bgt.b L1002
L1001
; gl_error( ctx, GL_INVALID_ENUM, "glGetTexImage(type)" );
move.l #L989,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1002
; if (gl_components_in_format(format) <= 0)
move.l d4,-(a7)
jsr _gl_components_in_format
addq.w #4,a7
cmp.l #0,d0
bgt.b L1004
L1003
; gl_error( ctx, GL_INVALID_ENUM, "glGetTexImage(format)" )
move.l #L990,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1004
; if (!pixels)
tst.l $1C(a5)
bne.b L1006
L1005
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1006
; switch (target)
cmp.l #$DE1,d3
beq.b L1008
bgt.b L1045
cmp.l #$DE0,d3
beq.b L1007
bra L1010
L1045
cmp.l #$806F,d3
beq.b L1009
bra.b L1010
;
L1007
; texObj = ctx->Texture.Set[ctx->Texture.CurrentSet]
move.l a2,a1
add.l #$DEC6,a1
move.l a2,a0
add.l #$DEBA,a0
move.l (a0),d0
muls.l #$BC,d0
lea 0(a1,d0.l),a0
move.l $A8(a0),a0
;
bra.b L1011
L1008
; texObj = ctx->Texture.Set[ctx->Texture.CurrentSet]
move.l a2,a1
add.l #$DEC6,a1
move.l a2,a0
add.l #$DEBA,a0
move.l (a0),d0
muls.l #$BC,d0
lea 0(a1,d0.l),a0
move.l $AC(a0),a0
;
bra.b L1011
L1009
; texObj = ctx->Texture.Set[ctx->Texture.CurrentSet]
move.l a2,a1
add.l #$DEC6,a1
move.l a2,a0
add.l #$DEBA,a0
move.l (a0),d0
muls.l #$BC,d0
lea 0(a1,d0.l),a0
move.l $B0(a0),a0
;
bra.b L1011
L1010
; gl_error( ctx, GL_INVALID_ENUM, "glGetTexImage(tar
move.l #L991,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1011
; return;
; if (texObj->Image[level] && texObj->Image[level]->Data)
lea $50(a0),a1
tst.l 0(a1,d2.l*4)
beq L1043
L1012
lea $50(a0),a1
move.l 0(a1,d2.l*4),a1
tst.l $34(a1)
beq L1043
L1013
; const struct gl_texture_image *texImage = texObj->Image[
lea $50(a0),a0
move.l 0(a0,d2.l*4),a3
; GLint width = texImage->Width;
move.l a3,a0
move.l $C(a0),d2
; GLint height = texImage->Height;
move.l a3,a0
move.l $10(a0),d7
; for (row = 0;
moveq #0,d3
bra L1042
L1014
; GLvoid *dest = gl_pixel_addr_in_image( &ctx->Unpac
clr.l -(a7)
move.l d3,-(a7)
clr.l -(a7)
move.l d5,-(a7)
move.l d4,-(a7)
move.l d7,-(a7)
move.l d2,-(a7)
move.l $1C(a5),-(a7)
move.l a2,a0
add.l #$E65E,a0
pea (a0)
jsr _gl_pixel_addr_in_image
add.w #$24,a7
move.l d0,a4
; if (texImage->Format == GL_RGBA)
move.l a3,a0
move.l (a0),d0
cmp.l #$1908,d0
bne.b L1016
L1015
; const GLubyte *src = texImage->Data + row *
move.l a3,a1
move.l d3,d0
muls.l d2,d0
moveq #2,d1
asl.l d1,d0
move.l $34(a1),a0
; gl_pack_rgba_span( ctx, width, (void *) src,
move.l a4,-(a7)
move.l d5,-(a7)
move.l d4,-(a7)
pea 0(a0,d0.l)
move.l d2,-(a7)
move.l a2,-(a7)
jsr _gl_pack_rgba_span
add.w #$18,a7
bra L1041
L1016
; switch (texImage->Format)
move.l a3,a0
move.l (a0),d0
cmp.l #$1908,d0
beq L1037
bgt.b L1046
cmp.l #$1906,d0
beq.b L1017
bgt.b L1047
cmp.l #$1900,d0
beq L1038
bra L1039
L1047
bgt L1033
L1046
cmp.l #$190A,d0
beq L1025
bgt.b L1048
blt.b L1021
L1048
cmp.l #$8049,d0
beq L1029
bra L1039
;
L1017
; src = texImage->Data + row * wid
move.l a3,a1
move.l d3,d0
muls.l d2,d0
move.l $34(a1),a0
add.l d0,a0
; for (i = 0;
moveq #0,d0
bra.b L1019
L1018
; rgba[i][RCOMP] = 255;
lea -$1918(a5),a1
move.b #$FF,0(a1,d0.l*4)
; rgba[i][GCOMP] = 255;
lea -$1918(a5),a1
lea 0(a1,d0.l*4),a1
move.b #$FF,1(a1)
; rgba[i][BCOMP] = 255;
lea -$1918(a5),a1
lea 0(a1,d0.l*4),a1
move.b #$FF,2(a1)
; rgba[i][ACOMP] = src[i];
lea -$1918(a5),a1
lea 0(a1,d0.l*4),a1
move.b 0(a0,d0.l),3(a1)
addq.l #1,d0
L1019
cmp.l d2,d0
blt.b L1018
L1020
;
bra L1040
L1021
; src = texImage->Data + row * wid
move.l a3,a1
move.l d3,d0
muls.l d2,d0
move.l $34(a1),a0
add.l d0,a0
; for (i = 0;
moveq #0,d0
bra.b L1023
L1022
; rgba[i][RCOMP] = src[i];
lea -$1918(a5),a1
move.b 0(a0,d0.l),0(a1,d0.l*4)
; rgba[i][GCOMP] = src[i];
lea -$1918(a5),a1
lea 0(a1,d0.l*4),a1
move.b 0(a0,d0.l),1(a1)
; rgba[i][BCOMP] = src[i];
lea -$1918(a5),a1
lea 0(a1,d0.l*4),a1
move.b 0(a0,d0.l),2(a1)
; rgba[i][ACOMP] = 255;
lea -$1918(a5),a1
lea 0(a1,d0.l*4),a1
move.b #$FF,3(a1)
addq.l #1,d0
L1023
cmp.l d2,d0
blt.b L1022
L1024
;
bra L1040
L1025
; src = texImage->Data + row * 2 *
move.l a3,a1
move.l d3,d0
moveq #1,d1
asl.l d1,d0
muls.l d2,d0
move.l $34(a1),a0
add.l d0,a0
; for (i = 0;
moveq #0,d0
bra.b L1027
L1026
; rgba[i][RCOMP] = src[i*2+0
move.l d0,d1
moveq #1,d6
asl.l d6,d1
lea -$1918(a5),a1
move.b 0(a0,d1.l),0(a1,d0.l*4)
; rgba[i][GCOMP] = src[i*2+0
move.l d0,d1
moveq #1,d6
asl.l d6,d1
lea -$1918(a5),a1
lea 0(a1,d0.l*4),a1
move.b 0(a0,d1.l),1(a1)
; rgba[i][BCOMP] = src[i*2+0
move.l d0,d1
moveq #1,d6
asl.l d6,d1
lea -$1918(a5),a1
lea 0(a1,d0.l*4),a1
move.b 0(a0,d1.l),2(a1)
; rgba[i][ACOMP] = src[i*2+1
move.l d0,d1
moveq #1,d6
asl.l d6,d1
lea 1(a0),a1
move.b 0(a1,d1.l),d1
lea -$1918(a5),a1
lea 0(a1,d0.l*4),a1
move.b d1,3(a1)
addq.l #1,d0
L1027
cmp.l d2,d0
blt.b L1026
L1028
;
bra L1040
L1029
; src = texImage->Data + row * wid
move.l a3,a1
move.l d3,d0
muls.l d2,d0
move.l $34(a1),a0
add.l d0,a0
; for (i = 0;
moveq #0,d0
bra.b L1031
L1030
; rgba[i][RCOMP] = src[i];
lea -$1918(a5),a1
move.b 0(a0,d0.l),0(a1,d0.l*4)
; rgba[i][GCOMP] = src[i];
lea -$1918(a5),a1
lea 0(a1,d0.l*4),a1
move.b 0(a0,d0.l),1(a1)
; rgba[i][BCOMP] = src[i];
lea -$1918(a5),a1
lea 0(a1,d0.l*4),a1
move.b 0(a0,d0.l),2(a1)
; rgba[i][ACOMP] = 255;
lea -$1918(a5),a1
lea 0(a1,d0.l*4),a1
move.b #$FF,3(a1)
addq.l #1,d0
L1031
cmp.l d2,d0
blt.b L1030
L1032
;
bra L1040
L1033
; src = texImage->Data + row * 3 *
move.l a3,a1
move.l d3,d0
muls.l #3,d0
muls.l d2,d0
move.l $34(a1),a0
add.l d0,a0
; for (i = 0;
moveq #0,d0
bra.b L1035
L1034
; rgba[i][RCOMP] = src[i*3+0
move.l d0,d1
muls.l #3,d1
lea -$1918(a5),a1
move.b 0(a0,d1.l),0(a1,d0.l*4)
; rgba[i][GCOMP] = src[i*3+1
move.l d0,d1
muls.l #3,d1
lea 1(a0),a1
move.b 0(a1,d1.l),d1
lea -$1918(a5),a1
lea 0(a1,d0.l*4),a1
move.b d1,1(a1)
; rgba[i][BCOMP] = src[i*3+2
move.l d0,d1
muls.l #3,d1
lea 2(a0),a1
move.b 0(a1,d1.l),d1
lea -$1918(a5),a1
lea 0(a1,d0.l*4),a1
move.b d1,2(a1)
; rgba[i][ACOMP] = 255;
lea -$1918(a5),a1
lea 0(a1,d0.l*4),a1
move.b #$FF,3(a1)
addq.l #1,d0
L1035
cmp.l d2,d0
blt.b L1034
L1036
;
bra.b L1040
L1037
; gl_problem( ctx, "error 1 in gl_
move.l #L992,-(a7)
move.l a2,-(a7)
jsr _gl_problem
addq.w #$8,a7
;
bra.b L1040
L1038
; gl_problem( ctx, "GL_COLOR_INDEX
move.l #L993,-(a7)
move.l a2,-(a7)
jsr _gl_problem
addq.w #$8,a7
;
bra.b L1040
L1039
; gl_problem( ctx, "bad format in
move.l #L994,-(a7)
move.l a2,-(a7)
jsr _gl_problem
addq.w #$8,a7
L1040
; gl_pack_rgba_span( ctx, width, (CONST GLubyt
move.l a4,-(a7)
move.l d5,-(a7)
move.l d4,-(a7)
pea -$1918(a5)
move.l d2,-(a7)
move.l a2,-(a7)
jsr _gl_pack_rgba_span
add.w #$18,a7
L1041
addq.l #1,d3
L1042
cmp.l d7,d3
blt L1014
L1043
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L993
dc.b 'GL_COLOR_INDEX not implemented in gl_GetTexImage',0
L994
dc.b 'bad format in gl_GetTexImage',0
L992
dc.b 'error 1 in gl_GetTexImage',0
L987
dc.b 'glGetTexImage',0
L990
dc.b 'glGetTexImage(format)',0
L988
dc.b 'glGetTexImage(level)',0
L991
dc.b 'glGetTexImage(target)',0
L989
dc.b 'glGetTexImage(type)',0
SECTION "_gl_unpack_texsubimage:0",CODE
;struct gl_image *
XDEF _gl_unpack_texsubimage
_gl_unpack_texsubimage
movem.l d2-d5/a2/a3,-(a7)
movem.l $28(a7),d2/d3/a3
movem.l $20(a7),d4/d5
move.l $1C(a7),a2
L1049
; if (type==GL_BITMAP && format!=GL_COLOR_INDEX)
cmp.l #$1A00,d3
bne.b L1052
L1050
cmp.l #$1900,d2
beq.b L1052
L1051
moveq #0,d0
movem.l (a7)+,d2-d5/a2/a3
rts
L1052
; if (format==GL_STENCIL_INDEX || format==GL_DEPTH_COMPONENT)
cmp.l #$1901,d2
beq.b L1054
L1053
cmp.l #$1902,d2
bne.b L1055
L1054
moveq #0,d0
movem.l (a7)+,d2-d5/a2/a3
rts
L1055
; if (gl_sizeof_type(type)<=0)
move.l d3,-(a7)
jsr _gl_sizeof_type
addq.w #4,a7
cmp.l #0,d0
bgt.b L1057
L1056
moveq #0,d0
movem.l (a7)+,d2-d5/a2/a3
rts
L1057
move.l a3,-(a7)
move.l d3,-(a7)
move.l d2,-(a7)
pea 1.w
move.l d5,-(a7)
move.l d4,-(a7)
move.l a2,-(a7)
jsr _gl_unpack_image3D
add.w #$1C,a7
movem.l (a7)+,d2-d5/a2/a3
rts
SECTION "_gl_unpack_texsubimage3D:0",CODE
;struct gl_image *
XDEF _gl_unpack_texsubimage3D
_gl_unpack_texsubimage3D
movem.l d2-d6/a2/a3,-(a7)
movem.l $30(a7),d2/d3/a3
movem.l $24(a7),d4-d6
move.l $20(a7),a2
L1058
; if (type==GL_BITMAP && format!=GL_COLOR_INDEX)
cmp.l #$1A00,d3
bne.b L1061
L1059
cmp.l #$1900,d2
beq.b L1061
L1060
moveq #0,d0
movem.l (a7)+,d2-d6/a2/a3
rts
L1061
; if (format==GL_STENCIL_INDEX || format==GL_DEPTH_COMPONENT)
cmp.l #$1901,d2
beq.b L1063
L1062
cmp.l #$1902,d2
bne.b L1064
L1063
moveq #0,d0
movem.l (a7)+,d2-d6/a2/a3
rts
L1064
; if (gl_sizeof_type(type)<=0)
move.l d3,-(a7)
jsr _gl_sizeof_type
addq.w #4,a7
cmp.l #0,d0
bgt.b L1066
L1065
moveq #0,d0
movem.l (a7)+,d2-d6/a2/a3
rts
L1066
move.l a3,-(a7)
move.l d3,-(a7)
move.l d2,-(a7)
move.l d6,-(a7)
move.l d5,-(a7)
move.l d4,-(a7)
move.l a2,-(a7)
jsr _gl_unpack_image3D
add.w #$1C,a7
movem.l (a7)+,d2-d6/a2/a3
rts
SECTION "_gl_TexSubImage1D:0",CODE
;void gl_TexSubImage1D( GLcontext *ctx,
XDEF _gl_TexSubImage1D
_gl_TexSubImage1D
L1111 EQU -$48
link a5,#L1111
movem.l d2-d7/a2-a4,-(a7)
movem.l $C(a5),d1/d2/d5
movem.l $1C(a5),d3/d7
move.l $18(a5),d4
move.l $8(a5),a2
L1075
; struct gl_texture_set *texSet = &ctx->Texture.Set[ctx->Texture
move.l a2,a1
add.l #$DEC6,a1
move.l a2,a0
add.l #$DEBA,a0
move.l (a0),d0
muls.l #$BC,d0
add.l a1,d0
move.l d0,-4(a5)
; if (target!=GL_TEXTURE_1D)
cmp.l #$DE0,d1
beq.b L1077
L1076
; gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage1D(target)
move.l #L1067,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1077
; if (level<0 || level>=MAX_TEXTURE_LEVELS)
tst.l d2
bmi.b L1079
L1078
cmp.l #$B,d2
blt.b L1080
L1079
; gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage1D(level)"
move.l #L1068,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1080
; destTex = texSet->Current1D->Image[level];
move.l -4(a5),a1
move.l $A8(a1),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),a4
; if (!destTex)
cmp.w #0,a4
bne.b L1082
L1081
; gl_error( ctx, GL_INVALID_OPERATION, "glTexSubImage1D" );
move.l #L1069,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1082
; if (xoffset < -((GLint)destTex->Border))
move.l a4,a0
move.l $8(a0),d0
neg.l d0
cmp.l d0,d5
bge.b L1084
L1083
; gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage1D(xoffse
move.l #L1070,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1084
; if (xoffset + width > (GLint) (destTex->Width + destTex->Borde
move.l d5,d0
add.l d4,d0
move.l d0,d6
move.l a4,a0
move.l $C(a0),d0
move.l a4,a0
add.l $8(a0),d0
move.l d6,d1
cmp.l d0,d1
ble.b L1086
L1085
; gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage1D(xoffse
move.l #L1071,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1086
; if (image)
tst.l $24(a5)
beq L1098
L1087
; GLint texcomponents = components_in_intformat(destTex->F
move.l a4,a0
move.l (a0),-(a7)
jsr _components_in_intformat
addq.w #4,a7
move.l d0,d3
; if (image->Type==GL_UNSIGNED_BYTE && texcomponents==imag
move.l $24(a5),a0
move.l $14(a0),d0
cmp.l #$1401,d0
bne.b L1090
L1088
move.l $24(a5),a0
cmp.l $C(a0),d3
bne.b L1090
L1089
; GLubyte *dst = destTex->Data + texcomponents * xof
move.l a4,a1
move.l d3,d0
muls.l d5,d0
move.l $34(a1),a0
lea 0(a0,d0.l),a1
; GLubyte *src = (GLubyte *) image->Data;
move.l $24(a5),a3
; MEMCPY( ds
move.l d4,d0
muls.l d3,d0
move.l d0,-(a7)
move.l $18(a3),-(a7)
move.l a1,-(a7)
jsr _q_memcpy
add.w #$C,a7
bra.b L1091
L1090
; struct gl_texture_image *subTexImg = image_to_text
move.l a4,a0
move.l $8(a0),-(a7)
move.l a4,a0
move.l 4(a0),-(a7)
move.l $24(a5),-(a7)
move.l a2,-(a7)
jsr _image_to_texture
add.w #$10,a7
move.l d0,-$10(a5)
; GLubyte *dst = destTex->Data + texcomponents * xof
move.l a4,a1
move.l d3,d0
muls.l d5,d0
move.l $34(a1),a0
lea 0(a0,d0.l),a1
; GLubyte *src = subTexImg->Data;
move.l -$10(a5),a3
; MEMCPY( ds
move.l d4,d0
muls.l d3,d0
move.l d0,-(a7)
move.l $34(a3),-(a7)
move.l a1,-(a7)
jsr _q_memcpy
add.w #$C,a7
; gl_free_texture_image(subTexImg);
move.l -$10(a5),-(a7)
jsr _gl_free_texture_image
addq.w #4,a7
L1091
; if (image->RefCount==0)
move.l $24(a5),a0
tst.l $1E(a0)
bne.b L1093
L1092
; gl_free_image(image);
move.l $24(a5),-(a7)
jsr _gl_free_image
addq.w #4,a7
L1093
; texSet->Current1D->Dirty = GL_TRUE;
move.l -4(a5),a1
move.l $A8(a1),a0
move.b #1,$488(a0)
; ctx->Texture.AnyDirty = GL_TRUE;
move.l a2,a0
add.l #$E03E,a0
move.b #1,(a0)
; if (ctx->Driver.TexSubImage)
tst.l $9CC(a2)
beq.b L1095
L1094
; (*ctx->Driver.TexSubImage)( ctx, GL_TEXTURE_1D,
move.l a4,-(a7)
move.l -4(a5),a1
move.l $A8(a1),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),a0
move.l 4(a0),-(a7)
pea 1.w
move.l d4,-(a7)
clr.l -(a7)
move.l d5,-(a7)
move.l d2,-(a7)
move.l -4(a5),a1
move.l $A8(a1),-(a7)
pea $DE0.w
move.l a2,-(a7)
move.l $9CC(a2),a0
jsr (a0)
add.w #$28,a7
bra.b L1097
L1095
; if (ctx->Driver.TexImage)
tst.l $9C8(a2)
beq.b L1097
L1096
; (*ctx->Driver.TexImage)( ctx, GL_TEXTURE_1D, tex
move.l a4,-(a7)
move.l -4(a5),a1
move.l $A8(a1),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),a0
move.l 4(a0),-(a7)
move.l d2,-(a7)
move.l -4(a5),a1
move.l $A8(a1),-(a7)
pea $DE0.w
move.l a2,-(a7)
move.l $9C8(a2),a0
jsr (a0)
add.w #$18,a7
L1097
bra L1110
L1098
; if (width<0)
tst.l d4
bpl.b L1100
L1099
; gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage1D(
move.l #L1072,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1100
; if (type==GL_BITMAP && format!=GL_COLOR_INDEX)
move.l d7,d0
cmp.l #$1A00,d0
bne.b L1103
L1101
cmp.l #$1900,d3
beq.b L1103
L1102
; gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage1D(f
move.l #L1073,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1103
; components = components_in_intformat( format );
move.l d3,-(a7)
jsr _components_in_intformat
addq.w #4,a7
; if (components<0 || format==GL_STENCIL_INDEX
tst.l d0
bmi.b L1106
L1104
cmp.l #$1901,d3
beq.b L1106
L1105
cmp.l #$1902,d3
bne.b L1107
L1106
; gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage1D(f
move.l #L1073,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1107
; size = gl_sizeof_type( type );
move.l d7,-(a7)
jsr _gl_sizeof_type
addq.w #4,a7
; if (size<=0)
cmp.l #0,d0
bgt.b L1109
L1108
; gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage1D(t
move.l #L1074,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1109
; gl_error( ctx, GL_OUT_OF_MEMORY, "glTexSubImage1D" );
move.l #L1069,-(a7)
pea $505.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
L1110
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1069
dc.b 'glTexSubImage1D',0
L1073
dc.b 'glTexSubImage1D(format)',0
L1068
dc.b 'glTexSubImage1D(level)',0
L1067
dc.b 'glTexSubImage1D(target)',0
L1074
dc.b 'glTexSubImage1D(type)',0
L1072
dc.b 'glTexSubImage1D(width)',0
L1070
dc.b 'glTexSubImage1D(xoffset)',0
L1071
dc.b 'glTexSubImage1D(xoffset+width)',0
SECTION "_gl_TexSubImage2D:0",CODE
; + (yoffset * destTex->W
XDEF _gl_TexSubImage2D
_gl_TexSubImage2D
L1172 EQU -$54
link a5,#L1172
movem.l d2-d7/a2-a4,-(a7)
movem.l $C(a5),d1/d7
movem.l $24(a5),d2/d4
movem.l $1C(a5),d3/d5
move.l $8(a5),a3
L1124
; struct gl_texture_set *texSet = &ctx->Texture.Set[ctx->Texture
move.l a3,a1
add.l #$DEC6,a1
move.l a3,a0
add.l #$DEBA,a0
move.l (a0),d0
muls.l #$BC,d0
add.l a1,d0
move.l d0,-4(a5)
; if (target!=GL_TEXTURE_2D)
cmp.l #$DE1,d1
beq.b L1126
L1125
; gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage2D(target)
move.l #L1112,-(a7)
pea $500.w
move.l a3,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1126
; if (level<0 || level>=MAX_TEXTURE_LEVELS)
tst.l d7
bmi.b L1128
L1127
move.l d7,d0
cmp.l #$B,d0
blt.b L1129
L1128
; gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage2D(level)"
move.l #L1113,-(a7)
pea $500.w
move.l a3,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1129
; destTex = texSet->Current2D->Image[level];
move.l -4(a5),a1
move.l $AC(a1),a0
lea $50(a0),a0
move.l d7,d0
move.l 0(a0,d0.l*4),a2
; if (!destTex)
cmp.w #0,a2
bne.b L1131
L1130
; gl_error( ctx, GL_INVALID_OPERATION, "glTexSubImage2D" );
move.l #L1114,-(a7)
pea $502.w
move.l a3,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1131
; if (xoffset < -((GLint)destTex->Border))
move.l $8(a2),d0
neg.l d0
move.l $14(a5),d1
cmp.l d0,d1
bge.b L1133
L1132
; gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage2D(xoffse
move.l #L1115,-(a7)
pea $501.w
move.l a3,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1133
; if (yoffset < -((GLint)destTex->Border))
move.l $8(a2),d0
neg.l d0
move.l $18(a5),d1
cmp.l d0,d1
bge.b L1135
L1134
; gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage2D(yoffse
move.l #L1116,-(a7)
pea $501.w
move.l a3,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1135
; if (xoffset + width > (GLint) (destTex->Width + destTex->Borde
move.l $14(a5),d0
add.l d3,d0
move.l d0,d6
move.l $C(a2),d0
add.l $8(a2),d0
move.l d6,d1
cmp.l d0,d1
ble.b L1137
L1136
; gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage2D(xoffse
move.l #L1117,-(a7)
pea $501.w
move.l a3,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1137
; if (yoffset + height > (GLint) (destTex->Height + destTex->Bor
move.l $18(a5),d0
add.l d5,d0
move.l d0,d6
move.l $10(a2),d0
add.l $8(a2),d0
move.l d6,d1
cmp.l d0,d1
ble.b L1139
L1138
; gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage2D(yoffse
move.l #L1118,-(a7)
pea $501.w
move.l a3,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1139
; if (image)
tst.l $2C(a5)
beq L1157
L1140
; GLint texcomponents = components_in_intformat(destTex->F
move.l (a2),-(a7)
jsr _components_in_intformat
addq.w #4,a7
move.l d0,d2
; if (image->Type==GL_UNSIGNED_BYTE && texcomponents==imag
move.l $2C(a5),a0
move.l $14(a0),d0
cmp.l #$1401,d0
bne.b L1146
L1141
move.l $2C(a5),a0
cmp.l $C(a0),d2
bne.b L1146
L1142
; GLubyte *dst = destTex->Data
move.l $C(a2),d0
mulu.l $18(a5),d0
add.l $14(a5),d0
mulu.l d2,d0
add.l $34(a2),d0
move.l d0,-$10(a5)
; GLubyte *src = (GLubyte *) image->Data;
move.l $2C(a5),a0
move.l $18(a0),a4
; for (j=0;
moveq #0,d4
bra.b L1144
L1143
; MEMCPY
move.l d3,d0
muls.l d2,d0
move.l d0,-(a7)
move.l a4,-(a7)
move.l -$10(a5),-(a7)
jsr _q_memcpy
add.w #$C,a7
; dst += destTex->Width * texcomponents * size
move.l $C(a2),d0
mulu.l d2,d0
add.l -$10(a5),d0
move.l d0,-$10(a5)
; src += width * texcomponents * sizeof(GLubyt
move.l d3,d0
muls.l d2,d0
add.l a4,d0
move.l d0,a4
addq.l #1,d4
L1144
cmp.l d5,d4
blt.b L1143
L1145
bra L1150
L1146
; struct gl_texture_image *subTexImg = image_to_text
move.l $8(a2),-(a7)
move.l 4(a2),-(a7)
move.l $2C(a5),-(a7)
move.l a3,-(a7)
jsr _image_to_texture
add.w #$10,a7
move.l d0,-$10(a5)
; GLubyte *dst = destTex->Data
move.l $C(a2),d0
mulu.l $18(a5),d0
add.l $14(a5),d0
mulu.l d2,d0
add.l $34(a2),d0
move.l d0,-$14(a5)
; GLubyte *src = subTexImg->Data;
move.l -$10(a5),a0
move.l $34(a0),a4
; for (j=0;
moveq #0,d4
bra.b L1148
L1147
; MEMCPY
move.l d3,d0
muls.l d2,d0
move.l d0,-(a7)
move.l a4,-(a7)
move.l -$14(a5),-(a7)
jsr _q_memcpy
add.w #$C,a7
; dst += destTex->Width * texcomponents * size
move.l $C(a2),d0
mulu.l d2,d0
add.l -$14(a5),d0
move.l d0,-$14(a5)
; src += width * texcomponents * sizeof(GLubyt
move.l d3,d0
muls.l d2,d0
add.l a4,d0
move.l d0,a4
addq.l #1,d4
L1148
cmp.l d5,d4
blt.b L1147
L1149
; gl_free_texture_image(subTexImg);
move.l -$10(a5),-(a7)
jsr _gl_free_texture_image
addq.w #4,a7
L1150
; if (image->RefCount==0)
move.l $2C(a5),a0
tst.l $1E(a0)
bne.b L1152
L1151
; gl_free_image(image);
move.l $2C(a5),-(a7)
jsr _gl_free_image
addq.w #4,a7
L1152
; texSet->Current2D->Dirty = GL_TRUE;
move.l -4(a5),a1
move.l $AC(a1),a0
move.b #1,$488(a0)
; ctx->Texture.AnyDirty = GL_TRUE;
move.l a3,a0
add.l #$E03E,a0
move.b #1,(a0)
; if (ctx->Driver.TexSubImage)
tst.l $9CC(a3)
beq.b L1154
L1153
; (*ctx->Driver.TexSubImage)( ctx, GL_TEXTURE_2D, texS
move.l a2,-(a7)
move.l -4(a5),a1
move.l $AC(a1),a0
lea $50(a0),a0
move.l d7,d0
move.l 0(a0,d0.l*4),a0
move.l 4(a0),-(a7)
move.l d5,-(a7)
move.l d3,-(a7)
move.l $18(a5),-(a7)
move.l $14(a5),-(a7)
move.l d7,-(a7)
move.l -4(a5),a1
move.l $AC(a1),-(a7)
pea $DE1.w
move.l a3,-(a7)
move.l $9CC(a3),a0
jsr (a0)
add.w #$28,a7
bra.b L1156
L1154
; if (ctx->Driver.TexImage)
tst.l $9C8(a3)
beq.b L1156
L1155
; (*ctx->Driver.TexImage)( ctx, GL_TEXTURE_2D, tex
move.l a2,-(a7)
move.l -4(a5),a1
move.l $AC(a1),a0
lea $50(a0),a0
move.l d7,d0
move.l 0(a0,d0.l*4),a0
move.l 4(a0),-(a7)
move.l d7,-(a7)
move.l -4(a5),a1
move.l $AC(a1),-(a7)
pea $DE1.w
move.l a3,-(a7)
move.l $9C8(a3),a0
jsr (a0)
add.w #$18,a7
L1156
bra L1171
L1157
; if (width<0)
tst.l d3
bpl.b L1159
L1158
; gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage2D(
move.l #L1119,-(a7)
pea $501.w
move.l a3,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1159
; if (height<0)
tst.l d5
bpl.b L1161
L1160
; gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage2D(
move.l #L1120,-(a7)
pea $501.w
move.l a3,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1161
; if (type==GL_BITMAP && format!=GL_COLOR_INDEX)
cmp.l #$1A00,d4
bne.b L1164
L1162
cmp.l #$1900,d2
beq.b L1164
L1163
; gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage1D(f
move.l #L1121,-(a7)
pea $500.w
move.l a3,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1164
; components = gl_components_in_format( format );
move.l d2,-(a7)
jsr _gl_components_in_format
addq.w #4,a7
; if (components<0 || format==GL_STENCIL_INDEX
tst.l d0
bmi.b L1167
L1165
cmp.l #$1901,d2
beq.b L1167
L1166
cmp.l #$1902,d2
bne.b L1168
L1167
; gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage2D(f
move.l #L1122,-(a7)
pea $500.w
move.l a3,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1168
; size = gl_sizeof_type( type );
move.l d4,-(a7)
jsr _gl_sizeof_type
addq.w #4,a7
; if (size<=0)
cmp.l #0,d0
bgt.b L1170
L1169
; gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage2D(t
move.l #L1123,-(a7)
pea $500.w
move.l a3,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1170
; gl_error( ctx, GL_OUT_OF_MEMORY, "glTexSubImage2D" );
move.l #L1114,-(a7)
pea $505.w
move.l a3,-(a7)
jsr _gl_error
add.w #$C,a7
L1171
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1121
dc.b 'glTexSubImage1D(format)',0
L1114
dc.b 'glTexSubImage2D',0
L1122
dc.b 'glTexSubImage2D(format)',0
L1120
dc.b 'glTexSubImage2D(height)',0
L1113
dc.b 'glTexSubImage2D(level)',0
L1112
dc.b 'glTexSubImage2D(target)',0
L1123
dc.b 'glTexSubImage2D(type)',0
L1119
dc.b 'glTexSubImage2D(width)',0
L1115
dc.b 'glTexSubImage2D(xoffset)',0
L1117
dc.b 'glTexSubImage2D(xoffset+width)',0
L1116
dc.b 'glTexSubImage2D(yoffset)',0
L1118
dc.b 'glTexSubImage2D(yoffset+height)',0
SECTION "_gl_TexSubImage3DEXT:0",CODE
; for (j=0;j<height;j++) {
XDEF _gl_TexSubImage3DEXT
_gl_TexSubImage3DEXT
L1245 EQU -$5C
link a5,#L1245
movem.l d2-d7/a2-a4,-(a7)
move.l $C(a5),d1
move.l $2C(a5),d2
move.l $20(a5),d3
move.l $1C(a5),d4
move.l $24(a5),d5
move.l $30(a5),d7
L1187
; struct gl_texture_set *texSet = &ctx->Texture.Set[ctx->Texture
move.l $8(a5),a0
move.l a0,a1
add.l #$DEC6,a1
move.l $8(a5),a2
move.l a2,a0
add.l #$DEBA,a0
move.l (a0),d0
muls.l #$BC,d0
add.l a1,d0
move.l d0,-4(a5)
; if (target!=GL_TEXTURE_3D_EXT)
cmp.l #$806F,d1
beq.b L1189
L1188
; gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage3DEXT(targ
move.l #L1173,-(a7)
pea $500.w
move.l $8(a5),-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1189
; if (level<0 || level>=MAX_TEXTURE_LEVELS)
tst.l $10(a5)
bmi.b L1191
L1190
move.l $10(a5),d0
cmp.l #$B,d0
blt.b L1192
L1191
; gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage3DEXT(leve
move.l #L1174,-(a7)
pea $500.w
move.l $8(a5),-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1192
; destTex = texSet->Current3D->Image[level];
move.l -4(a5),a1
move.l $B0(a1),a0
lea $50(a0),a0
move.l $10(a5),d0
move.l 0(a0,d0.l*4),a4
; if (!destTex)
cmp.w #0,a4
bne.b L1194
L1193
; gl_error( ctx, GL_INVALID_OPERATION, "glTexSubImage3DEXT
move.l #L1175,-(a7)
pea $502.w
move.l $8(a5),-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1194
; if (xoffset < -((GLint)destTex->Border))
move.l a4,a0
move.l $8(a0),d0
neg.l d0
move.l $14(a5),d1
cmp.l d0,d1
bge.b L1196
L1195
; gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage3DEXT(xof
move.l #L1176,-(a7)
pea $501.w
move.l $8(a5),-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1196
; if (yoffset < -((GLint)destTex->Border))
move.l a4,a0
move.l $8(a0),d0
neg.l d0
move.l $18(a5),d1
cmp.l d0,d1
bge.b L1198
L1197
; gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage3DEXT(yof
move.l #L1177,-(a7)
pea $501.w
move.l $8(a5),-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1198
; if (zoffset < -((GLint)destTex->Border))
move.l a4,a0
move.l $8(a0),d0
neg.l d0
cmp.l d0,d4
bge.b L1200
L1199
; gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage3DEXT(zof
move.l #L1178,-(a7)
pea $501.w
move.l $8(a5),-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1200
; if (xoffset + width > (GLint) (destTex->Width+destTex->Border))
move.l $14(a5),d0
add.l d3,d0
move.l d0,d6
move.l a4,a0
move.l $C(a0),d0
move.l a4,a0
add.l $8(a0),d0
move.l d6,d1
cmp.l d0,d1
ble.b L1202
L1201
; gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage3DEXT(xof
move.l #L1179,-(a7)
pea $501.w
move.l $8(a5),-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1202
; if (yoffset + height > (GLint) (destTex->Height+destTex->Borde
move.l $18(a5),d0
add.l d5,d0
move.l d0,d6
move.l a4,a0
move.l $10(a0),d0
move.l a4,a0
add.l $8(a0),d0
move.l d6,d1
cmp.l d0,d1
ble.b L1204
L1203
; gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage3DEXT(yof
move.l #L1180,-(a7)
pea $501.w
move.l $8(a5),-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1204
; if (zoffset + depth > (GLint) (destTex->Depth+destTex->Border)
move.l d4,d0
add.l $28(a5),d0
move.l d0,d6
move.l a4,a0
move.l $14(a0),d0
move.l a4,a0
add.l $8(a0),d0
move.l d6,d1
cmp.l d0,d1
ble.b L1206
L1205
; gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage3DEXT(zof
move.l #L1181,-(a7)
pea $501.w
move.l $8(a5),-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1206
; if (image)
tst.l $34(a5)
beq L1228
L1207
; GLint texcomponents = components_in_intformat(destTex->F
move.l a4,a0
move.l (a0),-(a7)
jsr _components_in_intformat
addq.w #4,a7
move.l d0,d2
; GLint dstRectArea = destTex->Width * destTex->Height;
move.l a4,a0
move.l $C(a0),d7
move.l a4,a0
move.l d7,d0
mulu.l $10(a0),d0
move.l d0,d7
; GLint srcRectArea = width * height;
move.l d3,d0
muls.l d5,d0
move.l d0,-$14(a5)
; if (image->Type==GL_UNSIGNED_BYTE && texcomponents==imag
move.l $34(a5),a0
move.l $14(a0),d0
cmp.l #$1401,d0
bne L1216
L1208
move.l $34(a5),a0
cmp.l $C(a0),d2
bne L1216
L1209
; GLubyte *dst = destTex->Data
move.l a4,a1
move.l $34(a1),a0
muls.l d7,d4
move.l a4,a1
move.l $18(a5),d0
mulu.l $C(a1),d0
move.l d0,$18(a5)
add.l $18(a5),d4
add.l $14(a5),d4
mulu.l d2,d4
move.l d4,d0
add.l a0,d0
move.l d0,a3
; GLubyte *src = (GLubyte *) image->Data;
move.l $34(a5),a0
move.l $18(a0),a2
; for(k=0;
moveq #0,d6
bra.b L1214
L1210
; for (j=0;
moveq #0,d4
bra.b L1212
L1211
; MEMCPY
move.l d3,d0
muls.l d2,d0
move.l d0,-(a7)
move.l a2,-(a7)
move.l a3,-(a7)
jsr _q_memcpy
add.w #$C,a7
; dst += destTex->Width * texcomponents;
move.l a4,a0
move.l $C(a0),d0
mulu.l d2,d0
add.l a3,d0
move.l d0,a3
; src += width * texcomponents;
move.l d3,d0
muls.l d2,d0
add.l d0,a2
addq.l #1,d4
L1212
cmp.l d5,d4
blt.b L1211
L1213
; dst += dstRectArea * texcomponents * sizeof(GL
move.l d7,d0
muls.l d2,d0
add.l a3,d0
move.l d0,a3
; src += srcRectArea * texcomponents * sizeof(GL
move.l -$14(a5),d0
muls.l d2,d0
add.l d0,a2
move.l d6,d0
addq.l #1,d0
move.l d0,d6
L1214
move.l d6,d0
cmp.l $28(a5),d0
blt.b L1210
L1215
bra L1223
L1216
; struct gl_texture_image *subTexImg = image_to_text
move.l a4,a0
move.l $8(a0),-(a7)
move.l a4,a0
move.l 4(a0),-(a7)
move.l $34(a5),-(a7)
move.l $8(a5),-(a7)
jsr _image_to_texture
add.w #$10,a7
move.l d0,-$18(a5)
; GLubyte *dst = destTex->Data
move.l a4,a1
move.l $34(a1),a0
muls.l d7,d4
move.l a4,a1
move.l $18(a5),d0
mulu.l $C(a1),d0
move.l d0,$18(a5)
add.l $18(a5),d4
add.l $14(a5),d4
mulu.l d2,d4
move.l d4,d0
add.l a0,d0
move.l d0,a3
; GLubyte *src = subTexImg->Data;
move.l -$18(a5),a0
move.l $34(a0),a2
; for(k=0;
moveq #0,d6
bra.b L1221
L1217
; for (j=0;
moveq #0,d4
bra.b L1219
L1218
; MEMCPY
move.l d3,d0
muls.l d2,d0
move.l d0,-(a7)
move.l a2,-(a7)
move.l a3,-(a7)
jsr _q_memcpy
add.w #$C,a7
; dst += destTex->Width * texcomponents;
move.l a4,a0
move.l $C(a0),d0
mulu.l d2,d0
add.l a3,d0
move.l d0,a3
; src += width * texcomponents;
move.l d3,d0
muls.l d2,d0
add.l d0,a2
addq.l #1,d4
L1219
cmp.l d5,d4
blt.b L1218
L1220
; dst += dstRectArea * texcomponents * sizeof(GL
move.l d7,d0
muls.l d2,d0
add.l a3,d0
move.l d0,a3
; src += srcRectArea * texcomponents * sizeof(GL
move.l -$14(a5),d0
muls.l d2,d0
add.l d0,a2
move.l d6,d0
addq.l #1,d0
move.l d0,d6
L1221
move.l d6,d0
cmp.l $28(a5),d0
blt.b L1217
L1222
; gl_free_texture_image(subTexImg);
move.l -$18(a5),-(a7)
jsr _gl_free_texture_image
addq.w #4,a7
L1223
; if (image->RefCount==0)
move.l $34(a5),a0
tst.l $1E(a0)
bne.b L1225
L1224
; gl_free_image(image);
move.l $34(a5),-(a7)
jsr _gl_free_image
addq.w #4,a7
L1225
; texSet->Current3D->Dirty = GL_TRUE;
move.l -4(a5),a1
move.l $B0(a1),a0
move.b #1,$488(a0)
; ctx->Texture.AnyDirty = GL_TRUE;
move.l $8(a5),a0
add.l #$E03E,a0
move.b #1,(a0)
; if (ctx->Driver.TexImage)
move.l $8(a5),a1
tst.l $9C8(a1)
beq.b L1227
L1226
; (*ctx->Driver.TexImage)( ctx, GL_TEXTURE_3D_EXT, t
move.l a4,-(a7)
move.l -4(a5),a1
move.l $B0(a1),a0
lea $50(a0),a0
move.l $10(a5),d0
move.l 0(a0,d0.l*4),a0
move.l 4(a0),-(a7)
move.l $10(a5),-(a7)
move.l -4(a5),a1
move.l $B0(a1),-(a7)
move.l #$806F,-(a7)
move.l $8(a5),-(a7)
move.l $8(a5),a1
move.l $9C8(a1),a0
jsr (a0)
add.w #$18,a7
L1227
bra L1244
L1228
; if (width<0)
tst.l d3
bpl.b L1230
L1229
; gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage3DE
move.l #L1182,-(a7)
pea $501.w
move.l $8(a5),-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1230
; if (height<0)
tst.l d5
bpl.b L1232
L1231
; gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage3DE
move.l #L1183,-(a7)
pea $501.w
move.l $8(a5),-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1232
; if (depth<0)
tst.l $28(a5)
bpl.b L1234
L1233
; gl_error( ctx, GL_INVALID_VALUE, "glTexSubImage3DE
move.l #L1184,-(a7)
pea $501.w
move.l $8(a5),-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1234
; if (type==GL_BITMAP && format!=GL_COLOR_INDEX)
move.l d7,d0
cmp.l #$1A00,d0
bne.b L1237
L1235
cmp.l #$1900,d2
beq.b L1237
L1236
; gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage3DEX
move.l #L1185,-(a7)
pea $500.w
move.l $8(a5),-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1237
; components = components_in_intformat( format );
move.l d2,-(a7)
jsr _components_in_intformat
addq.w #4,a7
; if (components<0 || format==GL_STENCIL_INDEX
tst.l d0
bmi.b L1240
L1238
cmp.l #$1901,d2
beq.b L1240
L1239
cmp.l #$1902,d2
bne.b L1241
L1240
; gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage3DEX
move.l #L1185,-(a7)
pea $500.w
move.l $8(a5),-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1241
; size = gl_sizeof_type( type );
move.l d7,-(a7)
jsr _gl_sizeof_type
addq.w #4,a7
; if (size<=0)
cmp.l #0,d0
bgt.b L1243
L1242
; gl_error( ctx, GL_INVALID_ENUM, "glTexSubImage3DEX
move.l #L1186,-(a7)
pea $500.w
move.l $8(a5),-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1243
; gl_error( ctx, GL_OUT_OF_MEMORY, "glTexSubImage3DEXT" );
move.l #L1175,-(a7)
pea $505.w
move.l $8(a5),-(a7)
jsr _gl_error
add.w #$C,a7
L1244
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1175
dc.b 'glTexSubImage3DEXT',0
L1184
dc.b 'glTexSubImage3DEXT(depth)',0
L1185
dc.b 'glTexSubImage3DEXT(format)',0
L1183
dc.b 'glTexSubImage3DEXT(height)',0
L1174
dc.b 'glTexSubImage3DEXT(level)',0
L1173
dc.b 'glTexSubImage3DEXT(target)',0
L1186
dc.b 'glTexSubImage3DEXT(type)',0
L1182
dc.b 'glTexSubImage3DEXT(width)',0
L1176
dc.b 'glTexSubImage3DEXT(xoffset)',0
L1179
dc.b 'glTexSubImage3DEXT(xoffset+width)',0
L1177
dc.b 'glTexSubImage3DEXT(yoffset)',0
L1180
dc.b 'glTexSubImage3DEXT(yoffset+height)',0
L1178
dc.b 'glTexSubImage3DEXT(zoffset)',0
L1181
dc.b 'glTexSubImage3DEXT(zoffset+depth)',0
SECTION "_read_color_image:0",CODE
;static struct gl_image *read_color_image( GLcontext *ctx, GLint x, G
_read_color_image
L1282 EQU -$1914
link a5,#L1282
movem.l d2-d7/a2-a4,-(a7)
movem.l $14(a5),d2/d4/d5
move.l $C(a5),d7
move.l $8(a5),a3
L1247
; components = components_in_intformat( format );
move.l d5,-(a7)
jsr _components_in_intformat
addq.w #4,a7
move.l d0,d3
; image = (struct gl_image *) malloc( sizeof(struct gl_image) );
pea $22.w
jsr _malloc
addq.w #4,a7
move.l d0,a4
; if (image)
cmp.w #0,a4
beq.b L1251
L1248
; image->Width = width;
move.l a4,a0
move.l d2,(a0)
; image->Height = height;
move.l a4,a0
move.l d4,4(a0)
; image->Depth = 1;
move.l a4,a0
move.l #1,$8(a0)
; image->Components = components;
move.l a4,a0
move.l d3,$C(a0)
; image->Format = format;
move.l a4,a0
move.l d5,$10(a0)
; image->Type = GL_UNSIGNED_BYTE;
move.l a4,a0
move.l #$1401,$14(a0)
; image->RefCount = 0;
move.l a4,a0
clr.l $1E(a0)
; image->Data = (GLubyte *) malloc( width * height * compo
move.l d2,d0
muls.l d4,d0
muls.l d3,d0
move.l d0,-(a7)
jsr _malloc
addq.w #4,a7
move.l a4,a1
move.l d0,$18(a1)
; if (!image->Data)
move.l a4,a1
tst.l $18(a1)
bne.b L1250
L1249
; free(image);
move.l a4,-(a7)
jsr _free
addq.w #4,a7
moveq #0,d0
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1250
; return
bra.b L1252
L1251
moveq #0,d0
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1252
; imgptr = (GLubyte *) image->Data;
move.l a4,a0
move.l $18(a0),a2
; (void) (*ctx->Driver.SetBuffer)( ctx, ctx->Pixel.ReadBuffer );
move.l a3,a0
add.l #$B168,a0
move.l (a0),-(a7)
move.l a3,-(a7)
move.l $91C(a3),a0
jsr (a0)
addq.w #$8,a7
; for (j=0;
moveq #0,d3
bra L1280
L1253
; gl_read_rgba_span( ctx, width, x, y+j, rgba );
pea -$1914(a5)
move.l $10(a5),d0
add.l d3,d0
move.l d0,-(a7)
move.l d7,-(a7)
move.l d2,-(a7)
move.l a3,-(a7)
jsr _gl_read_rgba_span
add.w #$14,a7
; switch (format)
move.l d5,d0
cmp.l #$1909,d0
beq.b L1258
bgt.b L1283
cmp.l #$1907,d0
beq L1270
bgt.b L1284
cmp.l #$1906,d0
beq.b L1254
bra L1278
L1284
bgt L1274
L1283
cmp.l #$190A,d0
beq.b L1262
cmp.l #$8049,d0
beq.b L1266
bra L1278
;
L1254
; for (i=0;
moveq #0,d0
bra.b L1256
L1255
; *imgptr++ = rgba[i][ACOMP];
lea -$1914(a5),a0
lea 0(a0,d0.l*4),a0
move.b 3(a0),d1
move.b d1,(a2)+
addq.l #1,d0
L1256
cmp.l d2,d0
blt.b L1255
L1257
;
bra L1279
L1258
; for (i=0;
moveq #0,d0
bra.b L1260
L1259
; *imgptr++ = rgba[i][RCOMP];
lea -$1914(a5),a0
move.b 0(a0,d0.l*4),d1
move.b d1,(a2)+
addq.l #1,d0
L1260
cmp.l d2,d0
blt.b L1259
L1261
;
bra L1279
L1262
; for (i=0;
moveq #0,d0
bra.b L1264
L1263
; *imgptr++ = rgba[i][RCOMP];
lea -$1914(a5),a0
move.b 0(a0,d0.l*4),d1
move.b d1,(a2)+
; *imgptr++ = rgba[i][ACOMP];
lea -$1914(a5),a0
lea 0(a0,d0.l*4),a0
move.b 3(a0),d1
move.b d1,(a2)+
addq.l #1,d0
L1264
cmp.l d2,d0
blt.b L1263
L1265
;
bra L1279
L1266
; for (i=0;
moveq #0,d0
bra.b L1268
L1267
; *imgptr++ = rgba[i][RCOMP];
lea -$1914(a5),a0
move.b 0(a0,d0.l*4),d1
move.b d1,(a2)+
addq.l #1,d0
L1268
cmp.l d2,d0
blt.b L1267
L1269
;
bra L1279
L1270
; for (i=0;
moveq #0,d0
bra.b L1272
L1271
; *imgptr++ = rgba[i][RCOMP];
lea -$1914(a5),a0
move.b 0(a0,d0.l*4),d1
move.b d1,(a2)+
; *imgptr++ = rgba[i][GCOMP];
lea -$1914(a5),a0
lea 0(a0,d0.l*4),a0
move.b 1(a0),d1
move.b d1,(a2)+
; *imgptr++ = rgba[i][BCOMP];
lea -$1914(a5),a0
lea 0(a0,d0.l*4),a0
move.b 2(a0),d1
move.b d1,(a2)+
addq.l #1,d0
L1272
cmp.l d2,d0
blt.b L1271
L1273
;
bra.b L1279
L1274
; for (i=0;
moveq #0,d0
bra.b L1276
L1275
; *imgptr++ = rgba[i][RCOMP];
lea -$1914(a5),a0
move.b 0(a0,d0.l*4),d1
move.b d1,(a2)+
; *imgptr++ = rgba[i][GCOMP];
lea -$1914(a5),a0
lea 0(a0,d0.l*4),a0
move.b 1(a0),d1
move.b d1,(a2)+
; *imgptr++ = rgba[i][BCOMP];
lea -$1914(a5),a0
lea 0(a0,d0.l*4),a0
move.b 2(a0),d1
move.b d1,(a2)+
; *imgptr++ = rgba[i][ACOMP];
lea -$1914(a5),a0
lea 0(a0,d0.l*4),a0
move.b 3(a0),d1
move.b d1,(a2)+
addq.l #1,d0
L1276
cmp.l d2,d0
blt.b L1275
L1277
;
bra.b L1279
L1278
; gl_problem(ctx, "Bad format in read_color_im
move.l #L1246,-(a7)
move.l a3,-(a7)
jsr _gl_problem
addq.w #$8,a7
;
L1279
addq.l #1,d3
L1280
cmp.l d4,d3
blt L1253
L1281
; (void) (*ctx->Driver.SetBuffer)( ctx, ctx->Color.DrawBuffer );
move.l $21E2(a3),-(a7)
move.l a3,-(a7)
move.l $91C(a3),a0
jsr (a0)
addq.w #$8,a7
move.l a4,d0
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1246
dc.b 'Bad format in read_color_image',0
SECTION "_gl_CopyTexImage1D:0",CODE
;void gl_CopyTexImage1D( GLcontext *ctx,
XDEF _gl_CopyTexImage1D
_gl_CopyTexImage1D
L1312 EQU -$8
link a5,#L1312
movem.l d2-d7/a2,-(a7)
movem.l $20(a5),d2/d4
movem.l $14(a5),d3/d7
move.l $10(a5),d5
move.l $C(a5),d6
move.l $8(a5),a2
L1291
; if (INSIDE_BEGIN_END(ctx))
move.l a2,a0
add.l #$E968,a0
move.l (a0),d0
cmp.l #$1A00,d0
beq.b L1293
L1292
; gl_error( ctx, GL_INVALID_OPERATION, "glCopyTexImage1D" )
move.l #L1285,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L1293
; if (target!=GL_TEXTURE_1D)
move.l d6,d0
cmp.l #$DE0,d0
beq.b L1295
L1294
; gl_error( ctx, GL_INVALID_ENUM, "glCopyTexImage1D(target)
move.l #L1286,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L1295
; if (level<0 || level>=MAX_TEXTURE_LEVELS)
tst.l d5
bmi.b L1297
L1296
cmp.l #$B,d5
blt.b L1298
L1297
; gl_error( ctx, GL_INVALID_VALUE, "glCopyTexImage1D(level)
move.l #L1287,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L1298
; if (border!=0 && border!=1)
tst.l d4
beq.b L1301
L1299
cmp.l #1,d4
beq.b L1301
L1300
; gl_error( ctx, GL_INVALID_VALUE, "glCopyTexImage1D(borde
move.l #L1288,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L1301
; if (width<2*border || width>2+MAX_TEXTURE_SIZE || width<0)
move.l d4,d0
moveq #1,d1
asl.l d1,d0
cmp.l d0,d2
blt.b L1304
L1302
cmp.l #$402,d2
bgt.b L1304
L1303
tst.l d2
bpl.b L1305
L1304
; gl_error( ctx, GL_INVALID_VALUE, "glCopyTexImage1D(width)
move.l #L1289,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L1305
; format = decode_internal_format( internalformat );
move.l d3,-(a7)
jsr _decode_internal_format
addq.w #4,a7
; if (format<0 || (internalformat>=1 && internalformat<=4))
tst.l d0
bmi.b L1308
L1306
cmp.l #1,d3
blt.b L1309
L1307
cmp.l #4,d3
bgt.b L1309
L1308
; gl_error( ctx, GL_INVALID_VALUE, "glCopyTexImage1D(forma
move.l #L1290,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L1309
; teximage = read_color_image( ctx, x, y, width, 1, (GLenum) for
move.l d0,-(a7)
pea 1.w
move.l d2,-(a7)
move.l $1C(a5),-(a7)
move.l d7,-(a7)
move.l a2,-(a7)
jsr _read_color_image
add.w #$18,a7
move.l d0,a0
; if (!teximage)
cmp.w #0,a0
bne.b L1311
L1310
; gl_error( ctx, GL_OUT_OF_MEMORY, "glCopyTexImage1D" );
move.l #L1285,-(a7)
pea $505.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L1311
; gl_TexImage1D( ctx, target, level, internalformat, width,
move.l a0,-(a7)
pea $1401.w
pea $1908.w
move.l d4,-(a7)
move.l d2,-(a7)
move.l d3,-(a7)
move.l d5,-(a7)
move.l d6,-(a7)
move.l a2,-(a7)
jsr _gl_TexImage1D
add.w #$24,a7
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L1285
dc.b 'glCopyTexImage1D',0
L1288
dc.b 'glCopyTexImage1D(border)',0
L1290
dc.b 'glCopyTexImage1D(format)',0
L1287
dc.b 'glCopyTexImage1D(level)',0
L1286
dc.b 'glCopyTexImage1D(target)',0
L1289
dc.b 'glCopyTexImage1D(width)',0
SECTION "_gl_CopyTexImage2D:0",CODE
;void gl_CopyTexImage2D( GLcontext *ctx,
XDEF _gl_CopyTexImage2D
_gl_CopyTexImage2D
L1345 EQU -$8
link a5,#L1345
movem.l d2-d7/a2,-(a7)
movem.l $24(a5),d2/d4
move.l $20(a5),d3
move.l $14(a5),d5
move.l $10(a5),d6
move.l $C(a5),d7
move.l $8(a5),a2
L1320
; if (INSIDE_BEGIN_END(ctx))
move.l a2,a0
add.l #$E968,a0
move.l (a0),d0
cmp.l #$1A00,d0
beq.b L1322
L1321
; gl_error( ctx, GL_INVALID_OPERATION, "glCopyTexImage2D" )
move.l #L1313,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L1322
; if (target!=GL_TEXTURE_2D)
move.l d7,d0
cmp.l #$DE1,d0
beq.b L1324
L1323
; gl_error( ctx, GL_INVALID_ENUM, "glCopyTexImage2D(target)
move.l #L1314,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L1324
; if (level<0 || level>=MAX_TEXTURE_LEVELS)
tst.l d6
bmi.b L1326
L1325
move.l d6,d0
cmp.l #$B,d0
blt.b L1327
L1326
; gl_error( ctx, GL_INVALID_VALUE, "glCopyTexImage2D(level)
move.l #L1315,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L1327
; if (border!=0 && border!=1)
tst.l d4
beq.b L1330
L1328
cmp.l #1,d4
beq.b L1330
L1329
; gl_error( ctx, GL_INVALID_VALUE, "glCopyTexImage2D(borde
move.l #L1316,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L1330
; if (width<2*border || width>2+MAX_TEXTURE_SIZE || width<0)
move.l d4,d0
moveq #1,d1
asl.l d1,d0
cmp.l d0,d3
blt.b L1333
L1331
cmp.l #$402,d3
bgt.b L1333
L1332
tst.l d3
bpl.b L1334
L1333
; gl_error( ctx, GL_INVALID_VALUE, "glCopyTexImage2D(width)
move.l #L1317,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L1334
; if (height<2*border || height>2+MAX_TEXTURE_SIZE || height<0)
move.l d4,d0
moveq #1,d1
asl.l d1,d0
cmp.l d0,d2
blt.b L1337
L1335
cmp.l #$402,d2
bgt.b L1337
L1336
tst.l d2
bpl.b L1338
L1337
; gl_error( ctx, GL_INVALID_VALUE, "glCopyTexImage2D(heigh
move.l #L1318,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L1338
; format = decode_internal_format( internalformat );
move.l d5,-(a7)
jsr _decode_internal_format
addq.w #4,a7
; if (format<0 || (internalformat>=1 && internalformat<=4))
tst.l d0
bmi.b L1341
L1339
cmp.l #1,d5
blt.b L1342
L1340
cmp.l #4,d5
bgt.b L1342
L1341
; gl_error( ctx, GL_INVALID_VALUE, "glCopyTexImage2D(forma
move.l #L1319,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L1342
; teximage = read_color_image( ctx, x, y, width, height, (GLenum)
move.l d0,-(a7)
move.l d2,-(a7)
move.l d3,-(a7)
move.l $1C(a5),-(a7)
move.l $18(a5),-(a7)
move.l a2,-(a7)
jsr _read_color_image
add.w #$18,a7
move.l d0,a0
; if (!teximage)
cmp.w #0,a0
bne.b L1344
L1343
; gl_error( ctx, GL_OUT_OF_MEMORY, "glCopyTexImage2D" );
move.l #L1313,-(a7)
pea $505.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L1344
; gl_TexImage2D( ctx, target, level, internalformat, width, heig
move.l a0,-(a7)
pea $1401.w
pea $1908.w
move.l d4,-(a7)
move.l d2,-(a7)
move.l d3,-(a7)
move.l d5,-(a7)
move.l d6,-(a7)
move.l d7,-(a7)
move.l a2,-(a7)
jsr _gl_TexImage2D
add.w #$28,a7
movem.l (a7)+,d2-d7/a2
unlk a5
rts
L1313
dc.b 'glCopyTexImage2D',0
L1316
dc.b 'glCopyTexImage2D(border)',0
L1319
dc.b 'glCopyTexImage2D(format)',0
L1318
dc.b 'glCopyTexImage2D(height)',0
L1315
dc.b 'glCopyTexImage2D(level)',0
L1314
dc.b 'glCopyTexImage2D(target)',0
L1317
dc.b 'glCopyTexImage2D(width)',0
SECTION "_copy_tex_sub_image:0",CODE
;static void copy_tex_sub_image( GLcontext *ctx, struct gl_texture_im
_copy_tex_sub_image
L1375 EQU -$1920
link a5,#L1375
movem.l d2-d7/a2/a3,-(a7)
move.l $10(a5),d2
move.l $28(a5),d5
move.l $8(a5),a2
move.l $C(a5),a3
L1346
; texwidth = dest->Width;
move.l a3,a0
move.l $C(a0),d7
; texheight = dest->Height;
move.l a3,a0
; rectarea = texwidth * texheight;
move.l $10(a0),d0
muls.l d7,d0
; zoffset *= rectarea;
muls.l d0,d5
; format = dest->Format;
move.l a3,a0
move.l (a0),d4
; components = components_in_intformat( format );
move.l d4,-(a7)
jsr _components_in_intformat
addq.w #4,a7
move.l d0,-$10(a5)
; (void) (*ctx->Driver.SetBuffer)( ctx, ctx->Pixel.ReadBuffer );
move.l a2,a0
add.l #$B168,a0
move.l (a0),-(a7)
move.l a2,-(a7)
move.l $91C(a2),a0
jsr (a0)
addq.w #$8,a7
; for (j=0;
moveq #0,d3
bra L1373
L1347
; gl_read_rgba_span( ctx, width, srcx, srcy+j, rgba );
pea -$191C(a5)
move.l $1C(a5),d0
add.l d3,d0
move.l d0,-(a7)
move.l $18(a5),-(a7)
move.l d2,-(a7)
move.l a2,-(a7)
jsr _gl_read_rgba_span
add.w #$14,a7
; texptr = dest->Data + ( zoffset + (dsty+j) * texwidth +
move.l a3,a1
move.l $24(a5),d0
add.l d3,d0
muls.l d7,d0
add.l d5,d0
add.l $20(a5),d0
muls.l -$10(a5),d0
move.l $34(a1),a0
add.l d0,a0
; switch (format)
move.l d4,d0
cmp.l #$1909,d0
beq.b L1352
bgt.b L1376
cmp.l #$1907,d0
beq L1364
bgt.b L1377
cmp.l #$1906,d0
beq.b L1348
bra L1372
L1377
bgt L1368
L1376
cmp.l #$190A,d0
beq.b L1356
cmp.l #$8049,d0
beq.b L1360
bra L1372
;
L1348
; for (i=0;
moveq #0,d0
bra.b L1350
L1349
; *texptr++ = rgba[i][ACOMP];
lea -$191C(a5),a1
lea 0(a1,d0.l*4),a1
move.b 3(a1),d1
move.b d1,(a0)+
addq.l #1,d0
L1350
cmp.l d2,d0
blt.b L1349
L1351
;
bra L1372
L1352
; for (i=0;
moveq #0,d0
bra.b L1354
L1353
; *texptr++ = rgba[i][RCOMP];
lea -$191C(a5),a1
move.b 0(a1,d0.l*4),d1
move.b d1,(a0)+
addq.l #1,d0
L1354
cmp.l d2,d0
blt.b L1353
L1355
;
bra L1372
L1356
; for (i=0;
moveq #0,d0
bra.b L1358
L1357
; *texptr++ = rgba[i][RCOMP];
lea -$191C(a5),a1
move.b 0(a1,d0.l*4),d1
move.b d1,(a0)+
; *texptr++ = rgba[i][ACOMP];
lea -$191C(a5),a1
lea 0(a1,d0.l*4),a1
move.b 3(a1),d1
move.b d1,(a0)+
addq.l #1,d0
L1358
cmp.l d2,d0
blt.b L1357
L1359
;
bra L1372
L1360
; for (i=0;
moveq #0,d0
bra.b L1362
L1361
; *texptr++ = rgba[i][RCOMP];
lea -$191C(a5),a1
move.b 0(a1,d0.l*4),d1
move.b d1,(a0)+
addq.l #1,d0
L1362
cmp.l d2,d0
blt.b L1361
L1363
;
bra.b L1372
L1364
; for (i=0;
moveq #0,d0
bra.b L1366
L1365
; *texptr++ = rgba[i][RCOMP];
lea -$191C(a5),a1
move.b 0(a1,d0.l*4),d1
move.b d1,(a0)+
; *texptr++ = rgba[i][GCOMP];
lea -$191C(a5),a1
lea 0(a1,d0.l*4),a1
move.b 1(a1),d1
move.b d1,(a0)+
; *texptr++ = rgba[i][BCOMP];
lea -$191C(a5),a1
lea 0(a1,d0.l*4),a1
move.b 2(a1),d1
move.b d1,(a0)+
addq.l #1,d0
L1366
cmp.l d2,d0
blt.b L1365
L1367
;
bra.b L1372
L1368
; for (i=0;
moveq #0,d0
bra.b L1370
L1369
; *texptr++ = rgba[i][RCOMP];
lea -$191C(a5),a1
move.b 0(a1,d0.l*4),d1
move.b d1,(a0)+
; *texptr++ = rgba[i][GCOMP];
lea -$191C(a5),a1
lea 0(a1,d0.l*4),a1
move.b 1(a1),d1
move.b d1,(a0)+
; *texptr++ = rgba[i][BCOMP];
lea -$191C(a5),a1
lea 0(a1,d0.l*4),a1
move.b 2(a1),d1
move.b d1,(a0)+
; *texptr++ = rgba[i][ACOMP];
lea -$191C(a5),a1
lea 0(a1,d0.l*4),a1
move.b 3(a1),d1
move.b d1,(a0)+
addq.l #1,d0
L1370
cmp.l d2,d0
blt.b L1369
L1371
;
L1372
addq.l #1,d3
L1373
cmp.l $14(a5),d3
blt L1347
L1374
; (void) (*ctx->Driver.SetBuffer)( ctx, ctx->Color.DrawBuffer );
move.l $21E2(a2),-(a7)
move.l a2,-(a7)
move.l $91C(a2),a0
jsr (a0)
addq.w #$8,a7
movem.l (a7)+,d2-d7/a2/a3
unlk a5
rts
SECTION "_gl_CopyTexSubImage1D:0",CODE
;void gl_CopyTexSubImage1D( GLcontext *ctx,
XDEF _gl_CopyTexSubImage1D
_gl_CopyTexSubImage1D
movem.l d2-d7/a2-a4,-(a7)
movem.l $2C(a7),d1-d3/d6/d7
move.l $40(a7),d4
move.l $28(a7),a2
L1384
; struct gl_texture_set *texSet = &ctx->Texture.Set[ctx->Texture
move.l a2,a1
add.l #$DEC6,a1
move.l a2,a0
add.l #$DEBA,a0
move.l (a0),d0
muls.l #$BC,d0
add.l a1,d0
move.l d0,a4
; if (INSIDE_BEGIN_END(ctx))
move.l a2,a0
add.l #$E968,a0
move.l (a0),d0
cmp.l #$1A00,d0
beq.b L1386
L1385
; gl_error( ctx, GL_INVALID_OPERATION, "glCopyTexSubImage1
move.l #L1378,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
rts
L1386
; if (target!=GL_TEXTURE_1D)
cmp.l #$DE0,d1
beq.b L1388
L1387
; gl_error( ctx, GL_INVALID_ENUM, "glCopyTexSubImage1D(tar
move.l #L1379,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
rts
L1388
; if (level<0 || level>=MAX_TEXTURE_LEVELS)
tst.l d2
bmi.b L1390
L1389
cmp.l #$B,d2
blt.b L1391
L1390
; gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImage1D(le
move.l #L1380,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
rts
L1391
; if (width<0)
tst.l d4
bpl.b L1393
L1392
; gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImage1D(wi
move.l #L1381,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
rts
L1393
; teximage = texSet->Current1D->Image[level];
move.l a4,a1
move.l $A8(a1),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),a3
; if (teximage)
cmp.w #0,a3
beq L1404
L1394
; if (xoffset < -((GLint)teximage->Border))
move.l a3,a0
move.l $8(a0),d0
neg.l d0
cmp.l d0,d3
bge.b L1396
L1395
; gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImag
move.l #L1382,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
rts
L1396
; if (xoffset+width > (GLint) (teximage->Width+teximage->B
move.l d3,d5
add.l d4,d5
move.l a3,a0
move.l $C(a0),d0
move.l a3,a0
add.l $8(a0),d0
cmp.l d0,d5
ble.b L1398
L1397
; gl_error( ctx, GL_INVALID_VALUE,
move.l #L1383,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
rts
L1398
; if (teximage->Data)
move.l a3,a1
tst.l $34(a1)
beq.b L1403
L1399
; copy_tex_sub_image( ctx, teximage, width, 1, x, y,
clr.l -(a7)
clr.l -(a7)
move.l d3,-(a7)
move.l d7,-(a7)
move.l d6,-(a7)
pea 1.w
move.l d4,-(a7)
move.l a3,-(a7)
move.l a2,-(a7)
jsr _copy_tex_sub_image
add.w #$24,a7
; if (ctx->Driver.TexSubImage)
tst.l $9CC(a2)
beq.b L1401
L1400
; if (teximage->Data) {
move.l a3,-(a7)
move.l a3,a0
move.l 4(a0),-(a7)
pea 1.w
move.l d4,-(a7)
clr.l -(a7)
move.l d3,-(a7)
move.l d2,-(a7)
move.l a4,a1
move.l $A8(a1),-(a7)
pea $DE0.w
move.l a2,-(a7)
move.l $9CC(a2),a0
jsr (a0)
add.w #$28,a7
bra.b L1403
L1401
; if (ctx->Driver.TexImage)
tst.l $9C8(a2)
beq.b L1403
L1402
; (*ctx->Driver.TexImage)( ctx, GL_TEXTURE_1
move.l a3,-(a7)
move.l a3,a0
move.l 4(a0),-(a7)
move.l d2,-(a7)
move.l a4,a1
move.l $A8(a1),-(a7)
pea $DE0.w
move.l a2,-(a7)
move.l $9C8(a2),a0
jsr (a0)
add.w #$18,a7
L1403
bra.b L1405
L1404
; gl_error( ctx, GL_INVALID_OPERATION, "glCopyTexSubImage1
move.l #L1378,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
L1405
movem.l (a7)+,d2-d7/a2-a4
rts
L1378
dc.b 'glCopyTexSubImage1D',0
L1380
dc.b 'glCopyTexSubImage1D(level)',0
L1379
dc.b 'glCopyTexSubImage1D(target)',0
L1381
dc.b 'glCopyTexSubImage1D(width)',0
L1382
dc.b 'glCopyTexSubImage1D(xoffset)',0
L1383
dc.b 'glCopyTexSubImage1D(xoffset+width)',0
SECTION "_gl_CopyTexSubImage2D:0",CODE
;void gl_CopyTexSubImage2D( GLcontext *ctx,
XDEF _gl_CopyTexSubImage2D
_gl_CopyTexSubImage2D
L1443 EQU -$8
link a5,#L1443
movem.l d2-d7/a2-a4,-(a7)
movem.l $C(a5),d1/d2/d4
move.l $18(a5),d3
move.l $28(a5),d5
move.l $24(a5),d7
move.l $8(a5),a2
L1415
; struct gl_texture_set *texSet = &ctx->Texture.Set[ctx->Texture
move.l a2,a1
add.l #$DEC6,a1
move.l a2,a0
add.l #$DEBA,a0
move.l (a0),d0
muls.l #$BC,d0
add.l a1,d0
move.l d0,a4
; if (INSIDE_BEGIN_END(ctx))
move.l a2,a0
add.l #$E968,a0
move.l (a0),d0
cmp.l #$1A00,d0
beq.b L1417
L1416
; gl_error( ctx, GL_INVALID_OPERATION, "glCopyTexSubImage2
move.l #L1406,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1417
; if (target!=GL_TEXTURE_2D)
cmp.l #$DE1,d1
beq.b L1419
L1418
; gl_error( ctx, GL_INVALID_ENUM, "glCopyTexSubImage2D(tar
move.l #L1407,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1419
; if (level<0 || level>=MAX_TEXTURE_LEVELS)
tst.l d2
bmi.b L1421
L1420
cmp.l #$B,d2
blt.b L1422
L1421
; gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImage2D(le
move.l #L1408,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1422
; if (width<0)
tst.l d7
bpl.b L1424
L1423
; gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImage2D(wi
move.l #L1409,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1424
; if (height<0)
tst.l d5
bpl.b L1426
L1425
; gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImage2D(he
move.l #L1410,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1426
; teximage = texSet->Current2D->Image[level];
move.l a4,a1
move.l $AC(a1),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),a3
; if (teximage)
cmp.w #0,a3
beq L1441
L1427
; if (xoffset < -((GLint)teximage->Border))
move.l a3,a0
move.l $8(a0),d0
neg.l d0
cmp.l d0,d4
bge.b L1429
L1428
; gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImag
move.l #L1411,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1429
; if (yoffset < -((GLint)teximage->Border))
move.l a3,a0
move.l $8(a0),d0
neg.l d0
cmp.l d0,d3
bge.b L1431
L1430
; gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImag
move.l #L1412,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1431
; if (xoffset+width > (GLint) (teximage->Width+teximage->B
move.l d4,d0
add.l d7,d0
move.l d0,d6
move.l a3,a0
move.l $C(a0),d0
move.l a3,a0
add.l $8(a0),d0
move.l d6,d1
cmp.l d0,d1
ble.b L1433
L1432
; gl_error( ctx, GL_INVALID_VALUE,
move.l #L1413,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1433
; if (yoffset+height > (GLint) (teximage->Height+teximage-
move.l d3,d0
add.l d5,d0
move.l d0,d6
move.l a3,a0
move.l $10(a0),d0
move.l a3,a0
add.l $8(a0),d0
move.l d6,d1
cmp.l d0,d1
ble.b L1435
L1434
; gl_error( ctx, GL_INVALID_VALUE,
move.l #L1414,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1435
; if (teximage->Data)
move.l a3,a1
tst.l $34(a1)
beq.b L1440
L1436
; copy_tex_sub_image( ctx, teximage, width, height,
clr.l -(a7)
move.l d3,-(a7)
move.l d4,-(a7)
move.l $20(a5),-(a7)
move.l $1C(a5),-(a7)
move.l d5,-(a7)
move.l d7,-(a7)
move.l a3,-(a7)
move.l a2,-(a7)
jsr _copy_tex_sub_image
add.w #$24,a7
; if (ctx->Driver.TexSubImage)
tst.l $9CC(a2)
beq.b L1438
L1437
; (*ctx->Driver.TexSubImage)( ctx, GL_TEXTURE_2D
move.l a3,-(a7)
move.l a3,a0
move.l 4(a0),-(a7)
move.l d5,-(a7)
move.l d7,-(a7)
move.l d3,-(a7)
move.l d4,-(a7)
move.l d2,-(a7)
move.l a4,a1
move.l $AC(a1),-(a7)
pea $DE1.w
move.l a2,-(a7)
move.l $9CC(a2),a0
jsr (a0)
add.w #$28,a7
bra.b L1440
L1438
; if (ctx->Driver.TexImage)
tst.l $9C8(a2)
beq.b L1440
L1439
; (*ctx->Driver.TexImage)( ctx, GL_TEXTURE_2
move.l a3,-(a7)
move.l a3,a0
move.l 4(a0),-(a7)
move.l d2,-(a7)
move.l a4,a1
move.l $AC(a1),-(a7)
pea $DE1.w
move.l a2,-(a7)
move.l $9C8(a2),a0
jsr (a0)
add.w #$18,a7
L1440
bra.b L1442
L1441
; gl_error( ctx, GL_INVALID_OPERATION, "glCopyTexSubImage2
move.l #L1406,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
L1442
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1406
dc.b 'glCopyTexSubImage2D',0
L1410
dc.b 'glCopyTexSubImage2D(height)',0
L1408
dc.b 'glCopyTexSubImage2D(level)',0
L1407
dc.b 'glCopyTexSubImage2D(target)',0
L1409
dc.b 'glCopyTexSubImage2D(width)',0
L1411
dc.b 'glCopyTexSubImage2D(xoffset)',0
L1413
dc.b 'glCopyTexSubImage2D(xoffset+width)',0
L1412
dc.b 'glCopyTexSubImage2D(yoffset)',0
L1414
dc.b 'glCopyTexSubImage2D(yoffset+height)',0
SECTION "_gl_CopyTexSubImage3DEXT:0",CODE
;void gl_CopyTexSubImage3DEXT( GLcontext *ctx,
XDEF _gl_CopyTexSubImage3DEXT
_gl_CopyTexSubImage3DEXT
L1485 EQU -$10
link a5,#L1485
movem.l d2-d7/a2-a4,-(a7)
move.l $1C(a5),d1
move.l $10(a5),d2
move.l $18(a5),d3
move.l $14(a5),d4
move.l $2C(a5),d5
move.l $28(a5),d7
move.l $8(a5),a2
L1455
; struct gl_texture_set *texSet = &ctx->Texture.Set[ctx->Texture
move.l a2,a1
add.l #$DEC6,a1
move.l a2,a0
add.l #$DEBA,a0
move.l (a0),d0
muls.l #$BC,d0
add.l a1,d0
move.l d0,a4
; if (INSIDE_BEGIN_END(ctx))
move.l a2,a0
add.l #$E968,a0
move.l (a0),d0
cmp.l #$1A00,d0
beq.b L1457
L1456
; gl_error( ctx, GL_INVALID_OPERATION, "glCopyTexSubImage3
move.l #L1444,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1457
; if (target!=GL_TEXTURE_2D)
move.l $C(a5),d0
cmp.l #$DE1,d0
beq.b L1459
L1458
; gl_error( ctx, GL_INVALID_ENUM, "glCopyTexSubImage3DEXT(
move.l #L1445,-(a7)
pea $500.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1459
; if (level<0 || level>=MAX_TEXTURE_LEVELS)
tst.l d2
bmi.b L1461
L1460
cmp.l #$B,d2
blt.b L1462
L1461
; gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImage3DEXT
move.l #L1446,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1462
; if (width<0)
tst.l d7
bpl.b L1464
L1463
; gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImage3DEXT
move.l #L1447,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1464
; if (height<0)
tst.l d5
bpl.b L1466
L1465
; gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImage3DEXT
move.l #L1448,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1466
; teximage = texSet->Current3D->Image[level];
move.l a4,a1
move.l $B0(a1),a0
lea $50(a0),a0
move.l 0(a0,d2.l*4),a3
; if (teximage)
cmp.w #0,a3
beq L1483
L1467
; if (xoffset < -((GLint)teximage->Border))
move.l a3,a0
move.l $8(a0),d0
neg.l d0
cmp.l d0,d4
bge.b L1469
L1468
; gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImag
move.l #L1449,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1469
; if (yoffset < -((GLint)teximage->Border))
move.l a3,a0
move.l $8(a0),d0
neg.l d0
cmp.l d0,d3
bge.b L1471
L1470
; gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImag
move.l #L1450,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1471
; if (zoffset < -((GLint)teximage->Border))
move.l a3,a0
move.l $8(a0),d0
neg.l d0
cmp.l d0,d1
bge.b L1473
L1472
; gl_error( ctx, GL_INVALID_VALUE, "glCopyTexSubImag
move.l #L1451,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1473
; if (xoffset+width > (GLint) (teximage->Width+teximage->B
move.l d4,d0
add.l d7,d0
move.l d0,-$10(a5)
move.l a3,a0
move.l $C(a0),d0
move.l a3,a0
add.l $8(a0),d0
move.l -$10(a5),d6
cmp.l d0,d6
ble.b L1475
L1474
; gl_error( ctx, GL_INVALID_VALUE,
move.l #L1452,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1475
; if (yoffset+height > (GLint) (teximage->Height+teximage-
move.l d3,d0
add.l d5,d0
move.l d0,-$C(a5)
move.l a3,a0
move.l $10(a0),d0
move.l a3,a0
add.l $8(a0),d0
move.l -$C(a5),d6
cmp.l d0,d6
ble.b L1477
L1476
; gl_error( ctx, GL_INVALID_VALUE,
move.l #L1453,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1477
; if (zoffset > (GLint) (teximage->Depth+teximage->Border))
move.l a3,a0
move.l $14(a0),d0
move.l a3,a0
add.l $8(a0),d0
cmp.l d0,d1
ble.b L1479
L1478
; gl_error( ctx, GL_INVALID_VALUE,
move.l #L1454,-(a7)
pea $501.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1479
; if (teximage->Data)
move.l a3,a1
tst.l $34(a1)
beq.b L1482
L1480
; copy_tex_sub_image( ctx, teximage, width, height,
move.l d1,-(a7)
move.l d3,-(a7)
move.l d4,-(a7)
move.l $24(a5),-(a7)
move.l $20(a5),-(a7)
move.l d5,-(a7)
move.l d7,-(a7)
move.l a3,-(a7)
move.l a2,-(a7)
jsr _copy_tex_sub_image
add.w #$24,a7
; if (ctx->Driver.TexImage)
tst.l $9C8(a2)
beq.b L1482
L1481
; (*ctx->Driver.TexImage)( ctx, GL_TEXTURE_3D_EX
move.l a3,-(a7)
move.l a3,a0
move.l 4(a0),-(a7)
move.l d2,-(a7)
move.l a4,a1
move.l $B0(a1),-(a7)
move.l #$806F,-(a7)
move.l a2,-(a7)
move.l $9C8(a2),a0
jsr (a0)
add.w #$18,a7
L1482
bra.b L1484
L1483
; gl_error( ctx, GL_INVALID_OPERATION, "glCopyTexSubImage3
move.l #L1444,-(a7)
pea $502.w
move.l a2,-(a7)
jsr _gl_error
add.w #$C,a7
L1484
movem.l (a7)+,d2-d7/a2-a4
unlk a5
rts
L1444
dc.b 'glCopyTexSubImage3DEXT',0
L1448
dc.b 'glCopyTexSubImage3DEXT(height)',0
L1446
dc.b 'glCopyTexSubImage3DEXT(level)',0
L1445
dc.b 'glCopyTexSubImage3DEXT(target)',0
L1447
dc.b 'glCopyTexSubImage3DEXT(width)',0
L1449
dc.b 'glCopyTexSubImage3DEXT(xoffset)',0
L1452
dc.b 'glCopyTexSubImage3DEXT(xoffset+width)',0
L1450
dc.b 'glCopyTexSubImage3DEXT(yoffset)',0
L1453
dc.b 'glCopyTexSubImage3DEXT(yoffset+height)',0
L1451
dc.b 'glCopyTexSubImage3DEXT(zoffset)',0
L1454
dc.b 'glCopyTexSubImage3DEXT(zoffset+depth)',0
END